VS CodeのPythonエクステンションを使ったJupterNotebookは通常のJupyterNotebookより遅い
要点
VS Codeの拡張機能『Python』を導入すると、VS Code上で通常のJupyterNotebookと同様にIPythonファイルを編集し、実行することができるようになります。
しかし、いざそれを使ってみると普段より明らかに処理に時間がかかっているように思えたので、今回それを検証してみました。
結論としては、VS Code上で実行した場合の方が圧倒的に遅いということがわかりました。
実行環境
- macOS Mojave 10.14.6
- Python 3.7.5
- pipenv 2018.11.26
- Jupyter
- jupyter 1.0.0
- jupyter-client 5.3.4
- jupyter-console 6.0.0
- jupyter-contrib-core 0.3.3
- jupyter-contrib-nbextensions 0.5.1
- jupyter-core 4.6.1
- jupyter-highlight-selected-word 0.2.0
- jupyter-latex-envs 1.4.6
- jupyter-nbextensions-configurator 0.4.1
- jupytext 1.3.0
検証コード
%% import pandas as pd import numpy as np from pandas import DataFrame from sklearn.datasets import load_boston import matplotlib.pyplot as plt import seaborn as sns boston = load_boston() df = DataFrame(X, columns = boston.feature_names) df['PRICE'] = boston.target %% %%time plt.figure(facecolor='w') pd.plotting.scatter_matrix(df, figsize=(20,20)) filename = 'scatter-matrix.png' plt.savefig(filename, dpi=100, bbox_inches="tight", pad_inches=0.1) plt.show()
結果
VS Code上で実行した場合の方が3倍ほど時間が掛かる結果が得られました。
Case1: JupyterNotebook
CPU times: user 20.8 s, sys: 337 ms, total: 21.1 s Wall time: 19.9 s
Case2: JupyterNotebook with Python extention of VS Code
CPU times: user 56.2 s, sys: 1.12 s, total: 57.3 s Wall time: 1min 5s