Что касается производительности, то как Python 3 сравнивается с Python 2.x?
Спустя семь лет после того, как этот вопрос был задан, ответ все тот же.
Я бы сказал, что разница будет ниже тривиальной. Например, цикл по списку будет таким же.
Идея Python 3 состоит в том, чтобы очистить сам синтаксис языка - удалить неоднозначные вещи, такие как except Exception1, Exception2
, очистить стандартные модули (без urllib, urllib2, httplib и т. д.).
На самом деле вы мало что можете сделать, чтобы улучшить его производительность, хотя я предполагаю, что такие вещи, как код сборки мусора и управления памятью, будут иметь некоторые настройки, но это не будет "вау, мой код генерации статистики базы данных завершается наполовину время!" улучшение - это то, что вы получаете, улучшая код, а не язык!
На самом деле производительность языка не имеет значения - все интерпретируемые языки в основном работают с одинаковой скоростью. Я считаю, что Python «быстрее» - это все встроенные moudles и удобный для написания синтаксис - то, что имеет было улучшено в Python3, поэтому я думаю, что в этих терминах, да, производительность python3 лучше, чем python2.x. .
«все интерпретируемые языки в основном функционируют с одинаковой скоростью» - это не совсем так. Интерпретированные пути кода могут быть скомпилированы в собственный код, см. Недавних конкурентов Javascript VM.
это ничего не значит о языке, но о компиляторах, написанных для него. У вас мог есть компилятор python, и он будет примерно таким же быстрым, как javascript.
Я не буду, если сейчас это будет быстрее, но я должен ожидать, что в конечном итоге это произойдет, потому что именно там будут выполняться новые работы по повышению производительности, и не все из этого будет перенесено.
3.0 медленнее, чем 2.5 по официальным тестам. От "Что нового в Python 3.0":
The net result of the 3.0 generalizations is that Python 3.0 runs the pystone benchmark around 10% slower than Python 2.5. Most likely the biggest cause is the removal of special-casing for small integers. There’s room for improvement, but it will happen after 3.0 is released!
Это по-прежнему в целом верно в 2015 году, если в рассматриваемом коде много строковых операций, Python 2.7 обычно быстрее, чем Python 3.5, по состоянию на ноябрь 2015 года.
Если нет каких-либо планов относительно новой виртуальной машины (и я не слышал о таких планах), есть все основания полагать, что в долгосрочной перспективе производительность Py3K будет, по крайней мере, асимптотически, равной производительности 2,5.
Это может занять несколько месяцев, но в конечном итоге произойдет, поскольку ничто в новых функциях Py3k по своей сути не является менее производительным.
В заключение, я не думаю, что есть повод для беспокойства по этому поводу. Также не стоит надеяться на какое-то серьезное улучшение.
(Обновление 30.03.2010): этот ответ сегодня не очень актуален, поскольку unladen-swallow будет объединен с Python 3 и обеспечит заметное ускорение. Если честно, это является новая ВМ :-)
Я думаю, что в конечном итоге еще слишком рано проводить такое сравнение. Подождите, пока он выйдет из бета-версии, прежде чем проводить тестирование. Интерпретатор, вероятно, будет значительно доработан перед выпуском, но в целом я думаю, что для большинства применений производительность будет сопоставимой, и если вы используете действительно ориентированное на скорость приложение, действительно ли питон является правильным языком для использования?
Спустя два года после того, как этот вопрос был задан, мне интересно, остается ли ответ прежним.