【发布时间】:2014-08-27 15:43:10
【问题描述】:
这是我的代码:
elif line.mesg.startswith('^^'):
recog, score = pull_recog(line)
line.recog = recog
line.score = score
print recog + ' '*(20-len(recog)) + '%2.2f'%score
这个问题真的归结为编译器如何处理这个问题:
编译器是否以某种方式优化了这段代码,这在以下方面没有区别:
- 调用局部变量
recog和score - 调用对象的实例变量
line.score和line.recog?
我最初的直觉是使用局部变量会更快,但我没有从 timeit 得到好的结果,所以我不能确定。
这是在 for 循环中,因此在这种情况下优化确实很重要。
【问题讨论】:
-
在计时时,使用您的计时应该显示的局部变量要快得多
标签: python optimization compiler-construction