私は現在、座標x
を何度も変換するソフトウェアの翻訳部分を最適化しているところです。私の現在の翻訳コードは関数内にあり、translate
関数内のおそらく最適化された部分translate_map
です。
ここで、ループはCで実行されるため、可能な場合はループの代わりに関数を使用する必要があることを読みました.map
for
以下のテスト ケースを実行すると、関数は実際には標準のループmap
よりも遅く実行されます。従来のループよりもパフォーマンスが遅いfor
のはなぜですか? 翻訳機能を最適化してより高速に実行するにはどうすればよいですか?map
for
import time
def translate(atom_list):
for i in atom_list:
i[1]+=1
i[2]+=1
i[3]+=1
atoms = [[1,1,1,1]]*1000
start = time.time()
for x in xrange(10000):
translate(atoms)
print time.time() - start
atoms = [[1,1,1,1]]*1000
start = time.time()
def translate_map(atom_list):
atom_list[1]+=1
atom_list[2]+=1
atom_list[3]+=1
for x in xrange(10000):
map(translate_map,atoms)
print time.time() - start
出力:
2.92705798149
4.14674210548