Python 代码性能测试与优化
1. 不同迭代方式的性能对比
1.1 list comprehensions 与 map 的性能
在某些测试中,在 PyPy 环境下,列表推导式(list comprehensions)的性能优于 map
函数。但总体而言,PyPy 的执行速度都比 CPython 快很多。而在 CPython 中,到目前为止 map
函数仍然是最快的。
1.2 函数调用对 map 性能的影响
当我们改变脚本,在每次迭代中执行内联操作(如加法),而不是调用像 abs
这样的内置函数时,情况就发生了变化。下面是修改后的代码示例:
# File timeseqs2.py (differing parts)
...
def forLoop():
res = []
for x in repslist:
res.append(x + 10)
return res
def listComp():
return [x + 10 for x in repslist]
def mapCall():
return list(map((lambda x: x + 10), repslist)) # list() in 3.X only
def genExpr():
return list(x + 10 for x in repslist) # list() in 2.X +