牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

実行時間計測をtimeit使ってPythonでやってみた

前から気になっていた以下の記事。

組み込み関数は手で書かれたコードより速く動作します。例えばmap(operator.add, v1, v2)はmap(lambda x,y: x+y, v1, v2)より速く動きます。

PythonSpeed


実行速度がどの程度違うのかテストしてみる。

import timeit
t= timeit.Timer(stmt="map(lambda x,y: x+y, [1,2,3,4,5], [6,7,8,9,10])")
print "use lambda: ", t.timeit(number = 10000)
t= timeit.Timer(setup="import operator",
                stmt="map(operator.add, [1,2,3,4,5], [6,7,8,9,10])")
print "use operator: ", t.timeit(number = 10000)

実行結果(6回)

>>> use lambda:  0.0648632049561
use operator:  0.053277015686
>>> use lambda:  0.0871851444244
use operator:  0.0545859336853
>>> use lambda:  0.092483997345
use operator:  0.0591459274292
>>> use lambda:  0.0901980400085
use operator:  0.0597898960114
>>> use lambda:  0.115708112717
use operator:  0.0629448890686
>>> use lambda:  0.104001045227
use operator:  0.0628590583801

けっこう差が出た。確かにoperatorの方が速いが、このやり方で合ってるのかな?