使用匿名函数获得性能提升?

时间:2013-06-26 23:52:37

标签: python lambda

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

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

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

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

1 个答案:

答案 0 :(得分:3)

问题本身很容易回答,没有在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]

可见,实际上并没有真正考虑到性能上的大幅增长,您的性能问题很可能就在其他地方。