Python优化 - 调用迭代函数会显着减慢我的程序吗?

时间:2015-06-30 05:13:18

标签: python optimization iteration

比较这两个代码库:

# Call this A.
def main():
    for a in list:
        foo(a)

def foo(something):
    <perform lots of operations on something and return a result>

VS

# Call this B
def main():
    for a in list:
        <perform lots of operations on a and return a result>

A比B慢多少?显然A有功能开销,但在编写代码时是否值得考虑?我问这个是因为我目前已经在A版本中实现了程序,其中基本上每次迭代都会调用一个函数。我宁愿这样做,因为“”非常复杂且深入,所以把它放在for循环中非常麻烦。更不用说我以后不能重复使用代码进行其他迭代...

2 个答案:

答案 0 :(得分:2)

除非你的“大量操作”发生得非常快,否则额外函数调用的费用可以忽略不计。

写作时,要注意大O的渐近效率;不要试图优化非显而易见的事物。然后,如果您的程序运行缓慢, 对其进行配置 并解决最大的瓶颈问题。没有事先分析的优化是徒劳的。

答案 1 :(得分:0)

您应该更喜欢可读性/可维护性/单元测试性。只有当它对于额外的性能绝对必要时,你才能内联函数。

foo

"<perform lots of operations on something..."的额外开销可能微不足道