日々適当

hibitekitou

ループ

xsi |2012-04-20
スクリプト処理速度比較「VBS・JS・Python・C++」 [ゲームの花園]

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 ( )
 
コメント
 
コメントはありません。
コメントを投稿する
ブログ作成者から承認されるまでコメントは反映されません
 
名前
タイトル
URL
コメント
コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。