- 论坛徽章:
- 5
|
本帖最后由 starwing83 于 2012-03-29 00:57 编辑
回复 29# OwnWaterloo
一次执行干扰太大,我分别在python和lua里面写了个100重循环计算。最终结果是lua比python慢0.1s,即使是luajit也是这样……为什么会这样……天崩地裂……
代码:
- local reverse = string.reverse
- local tostring = tostring
- for i = 1, 100 do
- local res = 0
- for m = 900,999 do
- for n = 900,999 do
- local x = m*n
- local sx = tostring(x)
- if sx == reverse(sx) and x > res then
- res = x
- end
- end
- end
- end
复制代码
- for i in range(100):
- max([x*y for x in range(900,1000) for y in range(900,1000) if str(x*y) == str(x*y)[::-1]])
复制代码 结果:
sw@WX-ACER ~
$ time python test.py ; time luajit test.lua
real 0m1.086s
user 0m0.016s
sys 0m0.031s
real 0m1.162s
user 0m0.015s
sys 0m0.000s
sw@WX-ACER ~
$ time python test.py ; time lua52 test.lua
real 0m1.053s
user 0m0.015s
sys 0m0.000s
real 0m1.295s
user 0m0.000s
sys 0m0.015s
即使是关了垃圾回收lua也没有python快……难道python专门优化过list comprehensive么……
python去掉了list comprehensive,写成了lua的形式,结果居然速度更快了,只有900ms的样子了……为神马……………… |
|