python 纯加减运算慢

2016-04-02 14:28:46 +08:00
 simon4545

Python 代码: import time a=time.time() i=0 for i in xrange(95550000): i +=100 i -=100 print i print time.time()-a

运行结果: 95549999 15.253000021

得到的不是 95550000 编译成了 Pyc 也一样的结果

但换成 Node.js 会快 100 倍都不止 var a=new Date(); var i; for(i = 0; i < 95550000; ++i) {    i += 100; i -= 100; } console.log(i) console.log((new Date())-a)

结果: 95549999 0.21799993515

我试了 pypy,性能和 node.js 接近

5338 次点击
所在节点    Python
28 条回复
imn1
2016-04-03 10:44:45 +08:00
@simon4545
while 也比 for 快一点
python 官方都建议用列表 /元组表达式代替 for 循环优化
simon4545
2016-04-03 11:40:57 +08:00
@imn1 python 我是新手,你说的列表元组是指的是用[sum(x ) for i in range(59990000)]推导么?
imn1
2016-04-03 12:37:03 +08:00
@simon4545
(x for x in ...)
[x for x in ...]
wizardforcel
2016-04-03 12:55:30 +08:00
node 自带了 jit ,你用 xpcshell 试试。(逃
fullpowers
2016-04-03 14:23:34 +08:00
我智商捉急,求问为什么是 95549999
zonghua
2016-04-03 14:54:23 +08:00
@bigtan 我想深入了解一下 cython
MrEggNoodle
2016-04-03 15:54:51 +08:00
@bigtan 看到你这个,我决定深入了解一下 cython 了。
simon4545
2016-04-04 13:46:05 +08:00
+1 cython

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/268116

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX