%time、%timeit、%%time、%timeitの違い(ipythonでコード実行時間を表示する魔法コマンド)
1、%time、%timeit、%time、%timeitの比較
%time:行モードでコードを1回実行するのにかかる時間.%%time:ユニットモードでコードを1回実行するのにかかる時間.
%timeit:行モードでコードブロックを何回か実行し、最適な結果を取ります.%%timeit:ユニットモードで、コードブロックを何回か実行し、最適な結果をとる.
1)注記:1>行モード:後続のコードのみをテストします.つまり、改行文字を使用してコードブロックを追加してテストすることはできません. 2>ユニットモード:コードブロックのテストに使用します.後続のコードだけでなく、改行で追加した残りのコードは、全体としてテストされます.ここで、第1行目のコードは、設定コード(実行されたがカウントされていない)として使用され、ユニットの本体はカウントされている.ユニット本体は、設定コードで作成された任意の変数にアクセスできます.
2)例:
2、%timeitと%timeitの具体的なパラメータ:
timeit[-n-r[-t|-c]-q-p-o]オプション:-n:ループで与えられた文次を実行します.指定されていない場合は、十分な精度値が得られると判断します.
-r:繰り返し回数、各繰り返し回数は個のサイクルからなり、最適な結果が得られる.デフォルト:7
-t:timeを使用する.timeは時間を測定します.これはUnixのデフォルト値です.この機能は、CPUユーザ以外の実際の時間を測定します.
-c:timeを使用する.clockは時間を測定します.これはWindowsのデフォルト設定で、実際の時間を測定します.Unixでresourceを使用します.getrusageはCPUユーザ時間に代わって返される.
-p:ビットの精度を使用してタイミング結果を表示します.デフォルト:3
-q:結果を印刷しません.
-o:チェックのために変数に格納できるTimeitResultを返します.
%time:行モードでコードを1回実行するのにかかる時間.%%time:ユニットモードでコードを1回実行するのにかかる時間.
%timeit:行モードでコードブロックを何回か実行し、最適な結果を取ります.%%timeit:ユニットモードで、コードブロックを何回か実行し、最適な結果をとる.
1)注記:
2)例:
In[102]: %%timeit #
...: for num in range(1, 10000):
...: result = 0
...: for factor in range(1, num):
...: if num % factor == 0:
...: result += factor
...: if result == num:
...: print(num)
...:
6
28
496
8128
6
28
496
8128
6
28
496
8128
6
28
496
8128
6
28
496
8128
6
28
496
8128
6
28
496
8128
6
28
496
8128
7.57 s ± 311 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
In[102]: %timeit # 。 ,
...: for num in range(1, 10000):
...: result = 0
...: for factor in range(1, num):
...: if num % factor == 0:
...: result += factor
...: if result == num:
...: print(num)
...:
6
28
496
8128
2、%timeitと%timeitの具体的なパラメータ:
timeit[-n-r[-t|-c]-q-p-o]オプション:-n:ループで与えられた文次を実行します.指定されていない場合は、十分な精度値が得られると判断します.
-r:繰り返し回数、各繰り返し回数は個のサイクルからなり、最適な結果が得られる.デフォルト:7
-t:timeを使用する.timeは時間を測定します.これはUnixのデフォルト値です.この機能は、CPUユーザ以外の実際の時間を測定します.
-c:timeを使用する.clockは時間を測定します.これはWindowsのデフォルト設定で、実際の時間を測定します.Unixでresourceを使用します.getrusageはCPUユーザ時間に代わって返される.
-p:ビットの精度を使用してタイミング結果を表示します.デフォルト:3
-q:結果を印刷しません.
-o:チェックのために変数に格納できるTimeitResultを返します.