v-crn Code Log

主に備忘録

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