ベンチマークのソースコードです。
from benchmarker import Benchmarker with Benchmarker(10000000, width=20, cycle=3, extra=1) as bench: @bench("tuple") def _(bm): for _ in bm: t = (1, 2, 3) @bench("list") def _(bm): for _ in bm: l = [1, 2, 3]
計測結果です。
## benchmarker: release 4.0.1 (for python) ## python version: 3.4.0 ## python compiler: MSC v.1600 32 bit (Intel) ## python platform: Windows-8-6.2.9200 ... ## Ranking real tuple 1.5684 (100.0) ******************** list 6.5198 ( 24.1) *****
tuple の方が高速となりました。しかも、決して軽視できないレベルの差です。
結果より、以下のような変更されないことが分かっている定数を作る場合、tuple の方が動作速度の面で優れているということになります。
ちょっとしたことですが、意識していきたいですね。
# tupleを使用。こちらが推奨される def accept_color(color): return color in ('RGB', 'RGBA') # listを使用。動作が若干遅い def accept_color(color): return color in ['RGB', 'RGBA']
0 件のコメント:
コメントを投稿