【发布时间】:2010-11-24 16:21:33
【问题描述】:
我知道这个问题有点愚蠢,也许它只是编写代码的一部分,但似乎定义简单的函数真的会严重损害性能......我试过这个简单的测试:
def make_legal_foo_string(x):
return "This is a foo string: " + str(x)
def sum_up_to(x):
return x*(x+1)/2
def foo(x):
return [make_legal_foo_string(x),sum_up_to(x),x+1]
def bar(x):
return ''.join([str(foo(x))," -- bar !! "])
它的风格非常好,并且使代码清晰,但它的速度可能是直接编写它的三倍。对于可能有副作用的函数来说这是不可避免的,但实际上定义一些函数几乎是微不足道的,这些函数每次出现时都应该用代码行替换,将源代码翻译成那个,然后才编译。同样,我认为对于幻数,从内存中读取并不需要很多时间,但是如果它们不应该被更改,那么为什么不在代码编译之前用文字替换每个“幻数”实例呢?
【问题讨论】:
-
对于Encapsulation(信息隐藏),这不是通常的含义。你在问什么我打电话给Decomposition。
-
-1:按照这个衡量标准,所有“结构化”都会损害性能——我们应该只使用宏生成器来创建长字符串,而不需要函数调用,并且所有循环都展开为语句序列。
标签: python performance