Скорость Python 32 v 64 битная проблема Windows - PullRequest
2 голосов
/ 22 марта 2011

У меня были проблемы с производительностью при перемещении приложений между 32-битными Windows 7 и 64-битными Windows Server 2008, оба с похожими процессорами.Я написал тривиальную программу для проверки производительности выделения памяти, чтобы увидеть разницу.Это показывает, что создание списков на 64 занимает почти в 10 раз больше времени, чем 32-битные окна.Использование python 2.6.5 на 32 и 2.6.6 на 64. Что может быть причиной проблемы?Я написал небольшую программу «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

Есть ли нерешенная проблема с производительностью Python и памяти на64-битные окна?

64 Windows 2008 R2 Настройка сервера

4 ЦП, 16 ГБ памяти, 20 ГБ диска C, 10 ГБ / с. Сеть Xeon X5570 @ 2,93 ГГц

32 Windows 7 ПК

2 ЦП, 2 ГБ памяти, диск 500 ГБ C, сеть 1 Гбит / с Core 2 duo @ 3,00 ГГц

Ответы [ 3 ]

2 голосов
/ 12 апреля 2011

Проблема вызвана использованием виртуального машинного программного обеспечения на сервере Windows.

2 голосов
/ 22 марта 2011

Я не знаю, почему это намного дольше, но немного больше времени вы должны ожидать, потому что в этом примере программа выделяет двойную память в 64-битном режиме, как в 32-битном режиме, так как python использует 32 / 64-битные указатели в своих списках.

Это может отличаться в C, если вы все еще используете 32-битные типы данных.

0 голосов
/ 09 января 2012

У меня была другая проблема с Python 2.7 и 64 бит. Я запускаю программу, которая в 32-битном Python давала переполнение памяти на меньшем компьютере. Мне было интересно, будет ли использоваться моя большая оперативная память. И, конечно, это было. До максимум 10 ГБ и аппарат завис. Мне пришлось выключить питание и перезагрузить компьютер.

...