Подтвердить что ты не робот

Python 2.7 или Python 3 (для скорости)?

Я искал ответы и много, кажется, устарел или устарел. Обновлен ли Python 3 так, что он прилично быстрее, чем Python 2.7, или мне еще лучше не придерживаться моего работоспособного кода?

4b9b3361

Ответ 1

Проблема не в скорости - они либо одинаковые, либо Python 3.x быстрее (в зависимости от того, на какие тесты вы смотрите). Точнее говоря, Python 2 раньше был быстрее, но, по-видимому, сейчас они на одном уровне (?). Смотрите комментарии и эту слайд-колоду (в направлении назад).

Основные разработчики также активно работают над оптимизацией Python 3 - каждый новый выпуск Python 3 был быстрее, чем предыдущий. Вы можете быть в курсе последних предложений и идей по оптимизации Python (а также многих сложностей), отслеживая список рассылки python-dev.

Скорее, причина, по которой многие люди привыкли отдавать за отсутствие обновлений, заключается в том, что когда вышел Python 3, и в течение нескольких лет после этого большинство библиотек Python не были обновлены для работы на Python 3.x. Однако, к счастью, эта ситуация сегодня значительно улучшилась - большинство сторонних библиотек теперь совместимы с Python 3.

Python FAQ содержит больше информации. Вы также можете проверить Python Wall of Superpowers или Py3 Readiness, чтобы получить обзор того, какие популярные библиотеки Python в настоящее время совместимы с Python 3.

Обновление: (лето 2017)

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

Многие сторонние библиотеки также планируют следовать этому примеру - большая часть научной экосистемы (например, matplotlib, pandas, ipython) планирует отказаться от поддержки Python 2 в 2020 году, Django отказывается от поддержки... Я бы не стал Удивлен, если другие библиотеки делают то же самое.

Итак, если вы заинтересованы в том, чтобы убедиться, что вы можете использовать самые последние и лучшие функции либо в Python, либо в вашей любимой библиотеке, вам стоит заняться переходом на Python 3 раньше, чем позже.

Вот несколько советов по преобразованию кода Python 2 в 3:

Ответ 2

FYI, здесь сравнительный тест производительности Python 2.7 с Python 3.3. Python 3.3 работает быстрее, чем Python 2.7.

Ответ 3

Python 3.3 включал оптимизацию для строк Unicode, которая уменьшала потребление памяти. Это может привести к более быстрому коду, если больше его вписывается в кеш.

На самом деле единственный способ узнать - сравнить ваш самый критический код с обоими и посмотреть, какая разница.

Ответ 4

Необходимость библиотек для ваших приложений будет определять, лучше ли Python3 или Pyhton2.