【发布时间】:2015-05-01 14:18:55
【问题描述】:
在 Linux 上需要 1.09171080828 秒。
在 Windows 上需要 2.14042000294 秒。
基准代码:
import time
def mk_array(num):
return [x for x in xrange(1,num)]
def run():
arr = mk_array(10000000)
x = 0
start = time.time()
x = reduce(lambda x,y: x + y, arr)
done = time.time()
elapsed = done - start
return elapsed
if __name__ == '__main__':
times = [run() for x in xrange(0,100)]
avg = sum(times)/len(times)
print (avg)
我知道 GIL 会创建或多或少的单线程脚本。
Windows 机器是我的 Hyper-V 主机,但应该足够强大,可以全速运行单线程脚本。 12 核 2.93Ghz Intel X5670s、72GB 内存等
Ubuntu VM 有 4 核和 8GB 内存。
两者都运行 Python 2.7.8 64 位。
为什么 windows 的速度是原来的一半?
编辑:我在 0.010593495369 秒内丢掉了两个零,linux 完成了,在 0.171899962425 秒内完成了 windows。谢谢大家,满足好奇心。
【问题讨论】:
标签: python windows benchmarking