2016年4月18日

ベンチマーク12 tupleとlist(1)

tuple と list の動作速度について比較します。ここでは、tuple と list の作成にかかる速度を比較します。


ベンチマークのソースコードです。

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 件のコメント:

コメントを投稿