UserPreferences

KazuoMoriwaka/Journal/2006-10-22


[WWW]リストの内包表記の実行速度はC言語並み? という記事が あったのでちょっとベンチマークとってみた。

Celeron2.7GHz メモリ1GB Debian sidな環境で実行。20回試行した平均。

orig xrange xrange,1
for_comp2.3 0.91 0.78 0.29
for_comp2.4 0.81 0.49 0.27
for_comp2.5 0.75 0.52 0.24
list_comp2.3 1.00 0.53 0.23
list_comp2.4 0.89 0.43 0.22
list_comp2.5 0.81 0.44 0.19

graph.jpg

この結果からわかることは

結論: リスト内包表記にしろforにしろ気になるほどの違いはないので、その場の意図が伝わりやすい書き方を選択するべき。

補足: 現状のdebianにはpython2.5用のpsycoがないため省略したが、psyco を利用することで orig で for_comp2.3: 0.277, list_comp2.3: 0.279 となった。速度が問題になる際にはまずpsycoの利用を考えるべきだろう。