2015年11月25日

ベンチマーク7 Noneチェック

こちらで「a is None は a == None よりも速い」と述べました。実際にどのくらい速いのか、ベンチマークを計測してみました。


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

from benchmarker import Benchmarker

with Benchmarker(10000000, cycle=3, extra=1) as bench:
    a = 0

    @bench("a is")
    def _(bm):
        for _ in bm:
            a is None

    @bench("a ==")
    def _(bm):
        for _ in bm:
            a == None
計測結果です。
## 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
a is         3.3138  (100.0) ********************
a ==         3.6289  ( 91.3) ******************

確かに a is None の方が a == None よりも速かったです。劇的と言う程でもありませんが。

0 件のコメント:

コメントを投稿