hibitekitou
ループ
xsi |2012-04-20
スクリプト処理速度比較「VBS・JS・Python・C++」 [ゲームの花園]
Pure Pythonは遅い。もうこれは認めざる得ない現実のようです。PyPyっていう高速な実行環境があるようですが、SIで利用できるのか分かりません。
ともあれ、少しでも早くならないかと、ちょこっとベンチマークです。
まぁつまり、for i in range(x)のxは、配列の長さを取得するlen(list)を入れるより、それを変数に入れて、変数をrange()の中に入れてやるほうが若干早いものの、実際に処理をさせてみると差を感じるようなものでもなく、手詰まりっす。
ただ。for oCllectionItem in oCollectionの書き方は非常に遅いらしい、というのは理解できました。
まぁ、それにしてもPythonがこれほど広がっているのはメリットが大きいからでしょうし、遅くともPythonでいきませう。どうせ、大したもの書いてないしね。
Pure Pythonは遅い。もうこれは認めざる得ない現実のようです。PyPyっていう高速な実行環境があるようですが、SIで利用できるのか分かりません。
ともあれ、少しでも早くならないかと、ちょこっとベンチマークです。
import time app = Application log = app.Logmessage oObj = app.Selection(0) oPoints = oObj.ActivePrimitive.Geometry.Points a = 0 sttimeA = time.clock() for oPoint in oPoints: a += 1 entimeA = time.clock() b = 0 sttimeB = time.clock() for i in range(len(oPoints)): b += 1 entimeB = time.clock() c = 0 sttimeC = time.clock() len = len(oPoints) for i in range(0,len): c += 1 entimeC = time.clock() log("----------------") log(" for oPoint in oPoints:" + str(entimeA - sttimeA)) log(" for i in range(len(oPoints)):" + str(entimeB - sttimeB)) log(" for i in range(len):" + str(entimeC - sttimeC)) log("----------------") # INFO : ---------------- # INFO : for oPoint in oPoints:0.916156011925 # INFO : for i in range(len(oPoints)):0.00331611912407 # INFO : for i in range(len):0.00253525194421 # INFO : ----------------
まぁつまり、for i in range(x)のxは、配列の長さを取得するlen(list)を入れるより、それを変数に入れて、変数をrange()の中に入れてやるほうが若干早いものの、実際に処理をさせてみると差を感じるようなものでもなく、手詰まりっす。
ただ。for oCllectionItem in oCollectionの書き方は非常に遅いらしい、というのは理解できました。
まぁ、それにしてもPythonがこれほど広がっているのはメリットが大きいからでしょうし、遅くともPythonでいきませう。どうせ、大したもの書いてないしね。
コメント ( 0 )|Trackback ( )
« SMBのマウント...・ももへの手紙 »
コメント |
コメントはありません。 |
コメントを投稿する |
ブログ作成者から承認されるまでコメントは反映されません |