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

При необходимости в режиме двоичного счета необходимо будет сделать это твердый путь:

s = File.open(filename, 'rb') { |f| f.read }

В противном случае короче и более сладкий:

s = IO.read(filename)
11
задан Martin Geisler 20 December 2009 в 10:26
поделиться

5 ответов

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

6
ответ дан 3 December 2019 в 10:26
поделиться

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

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

1
ответ дан 3 December 2019 в 10:26
поделиться

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

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

1
ответ дан 3 December 2019 в 10:26
поделиться

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

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

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

1
ответ дан 3 December 2019 в 10:26
поделиться

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

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

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

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

0
ответ дан 3 December 2019 в 10:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: