ここでは、ローカル関数とビルトイン関数の呼び出し速度を比較します。
ベンチマークのソースコードです。
str から int へのキャストについて、ビルトインの int() と一旦ローカル変数に代入した int() の速度を計測します。
from benchmarker import Benchmarker with Benchmarker(1000000, cycle=3, extra=1) as bench: s = '1' @bench("builtin") def _(bm): for _ in bm: int(s) @bench("local") def _(bm): local_int = int for _ in bm: local_int(s)
計測結果です。
## 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 local 1.3894 (100.0) ******************** builtin 1.4500 ( 95.8) *******************一旦ローカル変数にした方が、若干ですが高速になりました。
何万回というオーダーで int() を呼び出すのが分かっているのであれば、ローカル変数化した方が良いようです。
0 件のコメント:
コメントを投稿