2010年10月21日木曜日

[Python] 実行時間計測 timeit

下例では変数aと変数bの値を入れ替える2つのやり方をそれぞれ計測している。

>>> import timeit
>>> start = """
... a = 100
... b = -100
... """
>>> stmt1 = """
... x = a
... a = b
... b = x
... """
>>> stmt2 = """
... a, b = b, a
... """
>>> timeit.Timer(setup = start, stmt = stmt1).timeit()
0.14281582832336426
>>> timeit.Timer(setup = start, stmt = stmt2).timeit()
0.10225486755371094

timeitモジュールのTimerクラスのインスタンスを作る。
引数setupは時間計測の最初に1回だけ実行するその名のとおりセットアップ用の文。
セットアップにかかる時間は計測時間に含まれない。
引数stmtは計測対象の文。
timeit()を呼び出すとデフォルトで100万回stmtを実行する時間を秒単位で返す。
timeit(100)のように回数を渡せる。

stmp2の方がstmp1に比べ40%高速だとわかる。

0 件のコメント:

コメントを投稿