我一直在寻求从我的代码中挤出更多的性能;最近,在浏览时这个 Python 维基页面 https://wiki.python.org/moin/PythonSpeed,我发现了这个说法:
多重分配比单独分配慢。例如“x,y=a,b”比“x=a; y=b”慢。
出于好奇,我测试了它(在 Python 2.7 上):
$ python -m timeit "x, y = 1.2, -1.4"
10000000 loops, best of 3: 0.0365 usec per loop
$ python -m timeit "x = 1.2" "y = -1.4"
10000000 loops, best of 3: 0.0542 usec per loop
我以不同的顺序重复了几次,但多重分配片段的表现始终比单独分配好至少 30%。显然,我的代码中涉及变量赋值的部分不会成为任何重大瓶颈的根源,但我的好奇心仍然被激起。当文档另有说明时,为什么多重分配显然比单独分配更快?
EDIT:
我测试了对两个以上变量的赋值并得到以下结果:
趋势似乎或多或少是一致的;任何人都可以复制它吗?
(CPU:英特尔酷睿 i7 @ 2.20GHz)
有趣的是,它可能在某种程度上取决于CPU。这些都是 64 位 Linux 机器(相同的 Python 版本)。
Intel(R) Core(TM)2 Duo CPU T7300 @ 2.00GHz 的结果
$ python -V
Python 2.7.5+
$ python -m timeit "x, y = 1.2, -1.4"
10000000 loops, best of 3: 0.0554 usec per loop
$ python -m timeit "x = 1.2" "y = -1.4"
10000000 loops, best of 3: 0.0349 usec per loop
Intel(R) Pentium(R) CPU G850 @ 2.90GHz 的结果
$ python -V
Python 2.7.5+
$ python -m timeit "x, y = 1.2, -1.4"
10000000 loops, best of 3: 0.0245 usec per loop
$ python -m timeit "x = 1.2" "y = -1.4"
10000000 loops, best of 3: 0.0394 usec per loop
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)