Производительность Python в Windows - PullRequest
11 голосов
/ 03 декабря 2009

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

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

Ответы [ 6 ]

6 голосов
/ 27 февраля 2010

Я хотел продолжить это, и я нашел то, что, как мне кажется, «мой ответ». Похоже, что 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

1 голос
/ 04 декабря 2009

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

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

1 голос
/ 04 декабря 2009

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

Windows не справляется с открытием файлов так же эффективно, как Linux.

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

1 голос
/ 04 декабря 2009

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

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

0 голосов
/ 22 мая 2016

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

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

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

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

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

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

0 голосов
/ 04 декабря 2009

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...