【发布时间】:2011-07-20 05:41:55
【问题描述】:
在 32 位 windows 7 和 64 位 windows server 2008 之间移动应用程序时,我遇到了性能问题,两者都具有类似的处理器。我写了一个简单的程序来测试内存分配性能以查看差异。它表明在 64 位窗口上制作列表所需的时间几乎是 32 位窗口的 10 倍。在 32 上使用 python 2.6.5 和在 64 上使用 2.6.6。可能导致问题的原因是什么?我写了一个小“c”程序来做同样的事情,它表明 64 位服务器运行得更快。那么到底出了什么问题呢?
#silly python memory allocation test
from datetime import datetime
import random
d = datetime.now()
listo = [1] * 300000
del listo
print datetime.now()-d
d = datetime.now()
listo = [1] * 3000000
del listo
print datetime.now()-d
d = datetime.now()
listo = [1] * 30000000
print datetime.now()-d
32 日的结果
0:00:00.002000
0:00:00.024000
0:00:00.166000
64 的结果
0:00:00.031000
0:00:00.156000
0:00:02.672000
在 64 位窗口上 Python 和内存性能是否存在一些突出问题?
64 Windows 2008 R2 服务器设置
4 CPU、16GB 内存、20GB C 盘、10GB/s 网络 Xeon X5570 @ 2.93GHz
32 Windows 7 电脑
2 CPU、2GB 内存、500gb C 驱动器、1 Gb/s 网络 Core 2 duo @ 3.00ghz
【问题讨论】:
-
注意使用更好的时机,例如docs.python.org/library/timeit.html。谢谢
-
我刚刚在 Windows 7 64 位和 Python 2.6.5 上为您的三个示例使用了 timeit。我必须添加一个 del 以便它不会缩短实际创建。我的时间与您的 32 位时间非常匹配。你的电脑有多快,你有多少内存?
标签: python windows performance 32bit-64bit