Производительность Python в Windows

Является ли Python в целом медленнее в Windows против машины * nix? Python, похоже, вспыхивает на моей машине Mac OS X, тогда как на моей машине Window Vista она работает медленнее. Машины аналогичны по мощности обработки, а машина Vista имеет 1 ГБ больше памяти.

Я особенно замечаю это в Mercurial, но я полагаю, что это может быть просто, как Mercurial упаковывается в окна.

Ответ 1

Я хотел продолжить это, и я нашел то, что, как я считаю, "мой ответ". Похоже, что Windows (Vista, на которой я это заметил) не так быстро обрабатывает файлы. Это было упомянуто Тони-п-ли.

Я нашел это сравнение Ubuntu против Vista против Win7. Их результаты интересны, и, как они говорят, вы должны взять результаты с зерном соли. Но я думаю, что результаты приводят меня к делу. Python, который, как мне кажется, был косвенно протестирован, примерно эквивалентен, если не намного быстрее в Windows. См. Раздел "Тест Ричардса".

Вот их график для передачи файлов:

Graph - small file HD to HD
(источник: tuxradar.com)

Я думаю, что это поможет справиться с этим вопросом, потому что Hg - это просто последовательность операций чтения, копирования и обработки файлов. Вероятно, это вызывает задержку.

http://www.tuxradar.com/content/benchmarked-ubuntu-vs-vista-vs-windows-7

Ответ 2

Здесь нет реальных номеров, но, похоже, время запуска на платформах Windows медленнее. Я регулярно переключаюсь между Ubuntu дома и Windows 7 на работу, и на порядок быстрее запускается на Ubuntu, несмотря на то, что мой рабочий компьютер имеет скорость не менее 4x.

Что касается производительности во время исполнения, то для "тихих" приложений оно примерно одинаково. Если есть какие-либо операции с графическим интерфейсом, использующие Tk в Windows, они определенно медленнее. Любые консольные приложения в окнах медленнее, но это, скорее всего, связано с тем, что рендеринг CMD для Windows медленнее, чем работает python.

Ответ 3

Возможно, python больше зависит от большого количества файлов open (импорт разных модулей).

Windows не обрабатывает файл так же эффективно, как Linux.

Или, может быть, Linux, вероятно, больше утилит зависит от сценариев python и python, более вероятно, что они будут буферизованы в системном кеше.

Ответ 4

Я запускаю Python локально в Windows XP и 7, а также OSX на своем Macbook. Я не видел заметных различий в производительности в интерпретаторе командной строки, приложения виджета wx работают одинаково, а приложения Django также выполняются практически одинаково.

Одна вещь, которую я заметил на работе, заключалась в том, что сканер Kaspersky Virus замедляет работу переводчика Python. Потребуется 3-5 секунд для правильного отображения подсказки python и 7-10 секунд для полной загрузки тестового сервера Django. Правильное отключение его активного сканирования привело к тому, что время начала восстановления до 0 секунд.

Ответ 5

В ОС и сетевых библиотеках я могу подтвердить более медленную производительность в Windows, по крайней мере для версий = < 2.6.

Я написал сборщик подкастов CLI script, который отлично поработал на Ubuntu, но затем не загрузил бы что-нибудь быстрее, чем около 80 кБ/с (где ~ 1,6 МБ/с - мой обычный максимум) на XP или 7.

Я мог бы частично исправить это, изменив размер буфера для потоков загрузки, но определенно было основным узким местом в Windows, будь то по сети или IO, что просто не было проблемой для Linux.

Исходя из этого, кажется, что задачи с системой и OS-интерфейсом лучше оптимизированы для * nixes, чем для Windows.

Ответ 6

Интересно, что я провел прямое сравнение популярного приложения Python на компьютере с Windows 10 x64 (с низким уровнем мощности) и Ubuntu 14.04 VM, работающем на одном компьютере.

Я не тестировал скорость загрузки и т.д., но я просто смотрю на использование процессора между ними. Чтобы сделать тест справедливым, оба были свежими установками, и я дублировал часть своей медиабиблиотеки и применял ту же конфигурацию в обоих сценариях. Каждый тест проводился независимо.

  • В Windows Python использовала 20% мощности моего процессора, и это привело к тому, что системная сжатая память запустилась на 40% (это старая машина с 6 ГБ или оперативной памятью).
  • С VM на Ubuntu (связанной с моей файловой системой Windows) использование процессора составляет около 5%, а сжатая память - примерно до 20%.

Это огромная разница. Мой триггер для запуска этого теста состоял в том, что приложение, использующее python, запускало мой процессор до 100% и не работало. Сейчас я запускаю его на виртуальной машине в течение 2 недель, а использование моего процессора в среднем составляет 65-70%. Таким образом, как при длительном, так и в краткосрочном тестировании, и принимая во внимание накладные расходы на запуск виртуальной машины и второй операционной системы, это приложение Python значительно ускоряется в Linux. Я также могу подтвердить, что приложение Python отвечает лучше, как и все остальное на моей машине.

Теперь это может быть очень специфично для приложения, но это как минимум интересно.

ПК - это старый процессор AMD II X2 X265, 6 ГБ оперативной памяти, SSD HD (из которого Python работал, но VM использовала обычный 5200rpm HD, который используется для тонны других материалов, включая запись 2 камер видеонаблюдения).