使用匿名函数提高性能? [关闭]

Posted

技术标签:

【中文标题】使用匿名函数提高性能? [关闭]【英文标题】:Performance gain using anonymous functions? [closed] 【发布时间】:2013-06-24 07:35:57 【问题描述】:

我正在处理 300k 大文件,发现一个主要的性能问题。

问题在于正在执行的检查数量。

我们有很多函数,并计划将它们变成匿名函数。

我想知道使用匿名函数是否有任何性能提升。

【问题讨论】:

什么功能?检查什么? 300 KB 并不是那么大。另外,请使用您要优化的代码的具体示例和详细信息更清楚地说明您的问题。 你知道用 lambda 定义的函数只能有一个表达式吧?除非您有很多只返回一个值的单行函数,否则您不太可能将它们转换为 lambda。即使可以,我也希望性能差异可以忽略不计。 非常相关:meta.stackexchange.com/questions/66377/what-is-the-xy-problem 您是指大小为 300KB 的大文件,还是 300,000 个大文件?只是说' 【参考方案1】:

这个问题本身很容易回答,在 Python 中使用匿名函数并没有性能提升。很有可能你实际上让它变慢了。

一个简单的timeit 对琐碎函数的测试表明两者之间没有真正的区别。我们取这两个函数

def test(message):
    return message + message

testanon = lambda message: message + message

然后使用timeit模块来测试它们的执行速度:

>>> timeit.repeat("test('test')", setup="from __main__ import test")
[0.16360807418823242, 0.1602180004119873, 0.15763211250305176]
>>> timeit.repeat("testanon('test')", setup="from __main__ import testanon")
[0.15949010848999023, 0.15913081169128418, 0.17438983917236328]

可见,没有真正值得考虑的真正大的性能提升,您的性能问题很可能出在其他地方。

【讨论】:

以上是关于使用匿名函数提高性能? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

使用匿名函数会影响性能吗?

匿名对象的javascript构造函数[关闭]

如何在 Chrome 的性能分析器中调试匿名 JavaScript 函数?

(二十)python 3 匿名函数

Python - 匿名函数

匿名函数,向量化和预分配,函数的函数,P码文件