1. ホーム
  2. パイソン

[解決済み】ipython notebookでセルの実行時間を測定する簡単な方法

2022-04-16 03:29:36

質問

セルからの本来の出力に加え、セルの実行にかかった時間を取得したいのですが。

この目的のために、私は %%timeit -r1 -n1 が、これではセル内で定義された変数が公開されない。

%%time は、1つのステートメントしか含まないセルで動作します。

In[1]: %%time
       1
CPU times: user 4 µs, sys: 0 ns, total: 4 µs
Wall time: 5.96 µs
Out[1]: 1

In[2]: %%time
       # Notice there is no out result in this case.
       x = 1
       x
CPU times: user 3 µs, sys: 0 ns, total: 3 µs
Wall time: 5.96 µs

どうすればいいんだろう?

更新情報

私はこれまで Nbextensionにおける実行時間 は、かなり以前からあります。素晴らしいです。

2021-03更新

今現在 これ が正しい答えです。本来は %%time%%timeit が期待通りに動作するようになりました。

解決方法は?

古いバージョンのみの問題でした。

今必要なのは %%time をセル上部に配置します。

%time は、何かを実行するのにかかった時間を計測します。低レベルの最適化よりも、長時間実行される処理について報告するのに適しています。

%%timeit はベンチマークツールで、ステートメントを何度も走らせて 平均 の実行時間、および標準偏差を算出する。ステートメントが繰り返し実行される方法なので %%timeit のセルは、他のセルでは使用できません。

%%timeit はパイソンを使用しています。 timeit モジュールを使用します。そのためのドキュメントによると

を回避することができます。 実行時間の計測でよくある罠の数々。Tim Petersの の「アルゴリズム」の章の紹介です。 Python クックブック 出版社 O'Reillyです。

I 希望 として、そのモジュールはまだ関連性があります。 参照先 には、(1)Windows98のみアップデートする場合の回避策、(2)Windows98のみアップデートする場合の回避策、などが書かれています。 time.time() (2) バイトコードのオーバーヘッドである行番号カウンタのインクリメントを避けるために、すべてのステートメントを1行に詰め込んだ。


その 現在一番人気のある回答 また、その他の古いものは、現在では削除されるべきです。 非常に誤解を招きやすい - する には、それらの答えが正しくないことを示す有用なコメントがあります。