我目前正在优化我的软件的翻译部分,它翻译坐标x
的次数。我当前的翻译代码在translate
函数中,并且在函数中被认为是优化的部分translate_map
。
我在这里读到,map
应该尽可能使用函数而不是for
循环,因为循环是在 C 中执行的。
当我在下面运行一个测试用例时,该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