math.pi へのアクセス方法として以下の3パターン用意し、それぞれの処理速度を比較します。
- フルパスで math.pi
- from math import piとインポート
- いったんローカル変数 pi にコピー
ベンチマークのソースコードです。
from benchmarker import Benchmarker import math with Benchmarker(1000000, cycle=3, extra=1) as bench: @bench("math.pi") def _(bm): for _ in bm: 2.0 * math.pi @bench("import pi") def _(bm): from math import pi for _ in bm: 2.0 * pi @bench("local") def _(bm): pi = math.pi for _ in bm: 2.0 * pi計測結果です。
## 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 0.2657 (100.0) ******************** import pi 0.2703 ( 98.3) ******************** math.pi 0.4347 ( 61.1) ************
計測結果は、local と import pi はほぼ等速(localの方が遅い回もありました)、math.pi は低速、となりました。
いわゆる数学アルゴリズムでは math.pi へのアクセスが多くなる場合があります。math.pi とフルパスで書くのは、速度的には若干不利となるようです。
また、ドットを含むパスを書くと遅くなるというのは、math.pi に限らず全ての変数に言えることです。
0 件のコメント:
コメントを投稿