Сравнение скорости php и python
Языки на букву «P»: сравниваем возможности Python и PHP
В статье речь идет о языках Python и PHP, их схожих и отличных характеристиках. Никогда не задумывались о том, что у них общего? Рассказываем.
PHP – титан скриптовых языков, на котором работает 79% всех существующих сайтов. С другой стороны, на Python приходится основная доля интернет-трафика: на его чаше весов такие гиганты, как Amazon, Google, Reddit и Instagram. Попробуем разобраться в сильных и слабых сторонах этих языков с точки зрения веб-разработки. не холивара ради, а эрудиции для.
Сложность освоения
Одна из ключевых характеристик любого языка программирования. От того, как функциональные возможности соотносятся с удобством использования, зависит приток новых программистов, а значит и развитие той или иной экосистемы. Кроме того, чем проще язык, тем меньше времени уходит на разработку приложений, а это прямо влияет на стоимость продуктов.
По этому параметру Python обходит большинство, если не всех своих конкурентов. Именно этот язык рекомендуют учить в качестве первого, именно его синтаксис приводят в пример, когда речь заходит о прозрачности и удобстве кода. С другой стороны, PHP никогда не стремился нравиться новичкам: один тот факт, что его первые скрипты выросли из C, уже говорит о многом. Сегодня, когда веб-приложения превратились из простеньких утилит в грандиозные программные решения, сложность PHP отпугивает многих разработчиков.
Скорость работы
Одна из главных претензий противников Python – его медлительность. И действительно, PHP 7 разносит Python 3 в бенчмарках. Это означает, что серверные приложения тратят больше ресурсов, и при высокой нагрузке – возьмём для примера веб-приложение с миллионом ежедневных посещений – разница производительности действительно скажется на показателях проекта.
В защиту Python стоит сказать, что до определённой границы отставание будет микроскопическим. Если PHP-приложение выполняется за 10 мс, а программа на Python – за 30 мс, то трёхкратной разницей в производительности можно пренебречь. Решение остаётся за разработчиком, который выбирает нужный фреймворк по условиям конкретной задачи.
Поддержка комьюнити
Все мы идём в Интернет, когда у нас возникают вопросы – как в личной, так и в профессиональной жизни. И каждому знакомо это чувство, когда на третьей странице выдачи наконец обнаруживается ссылка на страницу с нужной информацией. а браузер показывает ошибку 408. Живое сообщество разработчиков, которые обмениваются опытом – обильно сдобренным профессиональными колкостями – страховка от таких ситуаций.
И PHP, и Python по этому параметру находятся примерно на одном уровне. Первый держится за счёт более чем 20-летней истории, в пользу второго играет статус «рок-звезды» среди языков программирования. Правда, понять ответы Python-профессионалов может быть проще, поскольку сам язык дружелюбнее к новичкам. Ещё один плюс – огромное количество разнообразной документации на все случаи жизни.
Спектр доступных библиотек
Логичное продолжение предыдущего пункта. Чем больше программистов работает с тем или иным языком, тем больше они создают новых функциональных модулей. Это расширяет его возможности, отчего язык привлекает новых адептов. в общем, вы поняли.
На этом поле Python держит уверенное лидерство: его Django стал эталонным фреймворком для веб-порталов всех мастей; CherryPy прямо из коробки предлагает полный инструментарий для создания веб-приложений на базе собственного мультипотокового сервера; есть решения для машинного обучения и работы с большими данными. Библиотеки PHP отстают по функциональности и удобству использования, и это признаёт большинство программистов.
По этой причине порог входа в Python для веб-разработки не слишком высок. Для начала достаточно понять логику языка и освоить несколько лучших фреймворков.
Отлов ошибок в коде
Ещё один показатель, который сильно влияет на стоимость разработки: как быстро в программе можно найти баги и узкие места. Меньше ошибок – меньше работы тестировщикам – больше ROI. Про пользователей тоже не стоит забывать: чем быстрее разработка, тем быстрее появляются новые функции, которые привязывают людей к продукту.
И у Python, и у PHP есть собственные дебаггеры: PDB (Python Debugger) и XDebug соответственно. Оба дебаггера обеспечивают вывод пути до обнаруженной ошибки, визуализацию параметров производительности и другие функции ежедневной необходимости. В этом отношении среди языков нет явного лидера.
Подсчет очков
Итак, в нашем сравнении Python победил в двух номинациях, PHP – в одной, ещё два раунда закончились вничью. Напрашивается вывод, что в этом столкновении нет чистого победителя. Если вы уже маститый PHP-разработчик, этот язык закроет все ваши потребности, да и в ближайшие годы без работы вы точно не останетесь. Нужно ли погружаться в новый язык, зависит от ваших целей и возможностей.
Если вы программист со стажем, но без особых карьерных перспектив, Python может открыть вам множество новых дорог. Возможность писать код как книгу позволяет мозгу больше инвестировать в креатив и работать над новыми идеями. Не побоимся повториться – начинающему программисту стоит прежде всего освоить именно Python. После этого можно продвигаться по уровням сложности как душе угодно.
Важно понимать, что Python – не просто модная игрушка, а мощный инструмент, с помощью которого можно создать как небольшую утилиту для упрощения отдельного процесса, так и масштабный сервисный портал с миллионами посетителей в сутки. Если вас будут убеждать в обратном – улыбнитесь и откажитесь от холивара.
Python и PHP: сравниваем возможности
Хочешь знать больше о Python?
Подпишись на наш канал о Python в Telegram!
Никогда не задумывались о том, что общего у языков Python и PHP? Сайт proglib.io рассказал, какие характеристики у них сходны, а какие отличаются.
PHP – титан скриптовых языков, на котором работает 79% всех существующих сайтов. С другой стороны, на Python приходится основная доля интернет-трафика: на его чаше весов такие гиганты, как Amazon, Google, Reddit и Instagram. Попробуем разобраться в сильных и слабых сторонах этих языков с точки зрения веб-разработки… не холивара ради, а эрудиции для.
Сложность освоения
Одна из ключевых характеристик любого языка программирования. От того, как функциональные возможности соотносятся с удобством использования, зависит приток новых программистов, а значит и развитие той или иной экосистемы. Кроме того, чем проще язык, тем меньше времени уходит на разработку приложений, а это прямо влияет на стоимость продуктов.
По этому параметру Python обходит большинство, если не всех своих конкурентов. Именно этот язык рекомендуют учить в качестве первого, именно его синтаксис приводят в пример, когда речь заходит о прозрачности и удобстве кода. С другой стороны, PHP никогда не стремился нравиться новичкам: один тот факт, что его первые скрипты выросли из C, уже говорит о многом. Сегодня, когда веб-приложения превратились из простеньких утилит в грандиозные программные решения, сложность PHP отпугивает многих разработчиков.
Скорость работы
Одна из главных претензий противников Python – его медлительность. И действительно, PHP 7 разносит Python 3 в бенчмарках. Это означает, что серверные приложения тратят больше ресурсов, и при высокой нагрузке – возьмём для примера веб-приложение с миллионом ежедневных посещений – разница производительности действительно скажется на показателях проекта.
В защиту Python стоит сказать, что до определённой границы отставание будет микроскопическим. Если PHP-приложение выполняется за 10 мс, а программа на Python – за 30 мс, то трёхкратной разницей в производительности можно пренебречь. Решение остаётся за разработчиком, который выбирает нужный фреймворк по условиям конкретной задачи.
Поддержка комьюнити
Все мы идём в Интернет, когда у нас возникают вопросы – как в личной, так и в профессиональной жизни. И каждому знакомо это чувство, когда на третьей странице выдачи наконец обнаруживается ссылка на страницу с нужной информацией… а браузер показывает ошибку 408. Живое сообщество разработчиков, которые обмениваются опытом – обильно сдобренным профессиональными колкостями – страховка от таких ситуаций.
И PHP, и Python по этому параметру находятся примерно на одном уровне. Первый держится за счёт более чем 20-летней истории, в пользу второго играет статус «рок-звезды» среди языков программирования. Правда, понять ответы Python-профессионалов может быть проще, поскольку сам язык дружелюбнее к новичкам. Ещё один плюс – огромное количество разнообразной документации на все случаи жизни.
Спектр доступных библиотек
Логичное продолжение предыдущего пункта. Чем больше программистов работает с тем или иным языком, тем больше они создают новых функциональных модулей. Это расширяет его возможности, отчего язык привлекает новых адептов… в общем, вы поняли.
На этом поле Python держит уверенное лидерство: его Django стал эталонным фреймворком для веб-порталов всех мастей; CherryPy прямо из коробки предлагает полный инструментарий для создания веб-приложений на базе собственного мультипотокового сервера; есть решения для машинного обучения и работы с большими данными. Библиотеки PHP отстают по функциональности и удобству использования, и это признаёт большинство программистов.
По этой причине порог входа в Python для веб-разработки не слишком высок. Для начала достаточно понять логику языка и освоить несколько лучших фреймворков.
Отлов ошибок в коде
Ещё один показатель, который сильно влияет на стоимость разработки: как быстро в программе можно найти баги и узкие места. Меньше ошибок – меньше работы тестировщикам – больше ROI. Про пользователей тоже не стоит забывать: чем быстрее разработка, тем быстрее появляются новые функции, которые привязывают людей к продукту.
И у Python, и у PHP есть собственные дебаггеры: PDB (Python Debugger) и XDebug соответственно. Оба дебаггера обеспечивают вывод пути до обнаруженной ошибки, визуализацию параметров производительности и другие функции ежедневной необходимости. В этом отношении среди языков нет явного лидера.
Подсчет очков
Итак, в нашем сравнении Python победил в двух номинациях, PHP – в одной, ещё два раунда закончились вничью. Напрашивается вывод, что в этом столкновении нет чистого победителя. Если вы уже маститый PHP-разработчик, этот язык закроет все ваши потребности, да и в ближайшие годы без работы вы точно не останетесь. Нужно ли погружаться в новый язык, зависит от ваших целей и возможностей.
Если вы программист со стажем, но без особых карьерных перспектив, Python может открыть вам множество новых дорог. Возможность писать код как книгу позволяет мозгу больше инвестировать в креатив и работать над новыми идеями. Не побоимся повториться – начинающему программисту стоит прежде всего освоить именно Python. После этого можно продвигаться по уровням сложности как душе угодно.
Важно понимать, что Python – не просто модная игрушка, а мощный инструмент, с помощью которого можно создать как небольшую утилиту для упрощения отдельного процесса, так и масштабный сервисный портал с миллионами посетителей в сутки. Если вас будут убеждать в обратном – улыбнитесь и откажитесь от холивара.
Почему PHP7 быстрее чем Python3?
Раньше было же наоборот когда PHP был на 5 версии? Есть ли смысл дальше учить Python для веба? Сейчас последние годы замечаю Django/Flask не очень активны в отличии от других технологий как Node.js, PHP/Laravel. Python в основном зациклился в машин лёрнинг.
UPD. Быстрее я имел ввиду производительнее. JS для ноды конечно круто, но беспорядочный синтаксис js не нравится в нём писать, и c php тоже такая проблема. Но как бы они есть, как laravel и nodejs. Их производительность намного превосходит чем питон.
Раньше было же наоборот когда PHP был на 5 версии?
Есть ли смысл дальше учить Python для веба?
Смысл ты сам для себя определяешь. Python используется для бекендов, если ты об этом.
Последний год утихла движуха вокруг него.
ты так говоришь будто производительность языка главное для веба. если бы это было так, все бы писали бекенды на C/C++ давно.
к тому же производительнсть асинхронного питона с uvloop примерно на одном уровне с Node.js и Go.
Ну как для моего дилетантского мнения, я имел ввиду чем производительнее твое приложение, тем больше экономии в желез и аренды сервера. Может я не прав, но мне кажется производительность тоже очень важная вещь.
Тебе вообще ничего не нужно учить.
Раньше было же наоборот когда PHP был на 5 версии?
Да. Но то, что php стал быстрее, лучше он от этого не стал.
Есть ли смысл дальше учить Python для веба?
Сейчас последние годы замечаю Django/Flask не очень активны в отличии от других технологий как Node.js, PHP/Laravel.
Не круто. Хайп прошёл. Даже сам создатель от ноды открещивается и топит за Golang. Говорит, что на сервере нет ничего лучше, чем Golang. А ноду, пусть и дальше фронтендщики ковыряют, если им хочется.
Их производительность намного превосходит чем питон.
экономии в желез и аренды сервера
https://github.com/Miserlou/Zappa если тебе хочется экономить на спичках при низкой загрузке.
производительность тоже очень важная вещь
Зависит от задачи. И это веб, часто тормозят кривые запросы к БД.
Далеко не всегда ты упираешься в производительность cpython.
python это легаси типа perl5
Гыыы. А выше отписываются оправдашки задетые.
Плюсую. Это просто смрад и погибель.
python2 да, python3 нет
почему сайт без php и питона быстрее, чем с ними?
почему сайт без php и питона быстрее, чем с ними?
Да, идеальный сайт не содержит ни строчки богомерзкого кода. А генерить можно на любом языке, хоть на лиспе.
Тебе вообще ничего не нужно учить.
Зачем вы так токсичны?
После изобретение голанга все эти ваши пыхи — легаси.
беспорядочный синтаксис js не нравится в нём писать, и c php тоже такая проблема
Учи жабку. Там все строем ходят и по скорости оно делает всё что шевелится (кроме разве что С/C++).
Все. Нода сдохла. Она теперь остается только как make для фронтенда.
PHP не быстрее и это факт.
Ну миллион это не так много. 1 скромная квартирка не в центре или 1 авто. Для бизнеса, тем более таких масштабов, потери незначительные. Видимо, обычная джинса.
Тысячи софта на ноде сами себя не перепишут. Сегодня 9/10 приложений написаны на ноде.
Так и меня сейчас запущен Хром, SublimeText, MC, OpenSSH сервер и клиент. Продолжить? Кто из них написан на Ноде? Да от нее ее создатель отказался.
Нет. Зачем мне конкуренты.
что нам дело до всяких говнокодеров? нода это v8
Нет, смысла учить что-то кроме JS нет.
Скоро все ПО станет на JS, а потом V8 встроят в процессоры и на JS станет вообще все. Даже линукс.
JS это silver bullet, учи JS.
что нам дело до всяких говнокодеров?
Что и требовалось доказать. Если дом построил «таджик», то пофиг кто потом делает ремонт. Архитектура останется. Тут надо жечь все ибо уже ничего не спасет.
An app server cluster at Badoo consists of a bit more than 600 servers. By cutting CPU usage in half, we free up around 300 servers
В два раза это немного, да.
Зачем ОП тупые вопросы?
Это только серверы приложений, которых было 600 из 3000. Путём нехитрых подсчётов получается экономия
10% (хотя это довольно грубая оценка) на приросте производительности интерпретатора в два раза.
Есть ли смысл дальше учить Python для веба?
Если ты в Москве && ты собираешься работать в компании где делают highLoad-проект || за работу с использованием python тебе будут платить, то смысл может быть. Впрочем и в Первопрестольной есть highLoad-проекты, в которых используется php.
на 1 такого молодца-питониста придется over 10 php-разрабов с меньшими запросами
9 из которых SQL пишут тупо суммируя строки из запроса с кусками SQL. Я более того видел вакансию PHP прогера с условием «Писать запросы к БД БЕЗ ОРМ».
9 из которых SQL пишут тупо суммируя строки из запроса с кусками SQL.
Я более того видел вакансию PHP прогера с условием «Писать запросы к БД БЕЗ ОРМ».
И что? Если это условие знания, то всё правильно написали. Зачем нужен такой программист, который SQL не осилил? А что до работы, то всё от проекта зависит.
Использование того или иного ЯП (python’a или php) само по себе не делает из человека ни «говнокодера», ни «хакера».
Есть и куча всяких книг с доказательством. И все знают что 1С-ник это «диагноз». У меня знакомый 15 лет работал с 1С и вылез в Java. Месяц назад ему предложили 300т. в месяц за 1С и он в ужасе сказал НЕТ.
Я по себе знаю, что после изучения Лисп стал СОВСЕМ иначе писать программы. И я знаю, что если я месяц писал на какомнибудь убожестве я деградирую. И это подтверждают множество фактов.
Откуда грузинский акцент? Ты думаешь, что Грузин не понимает разницу между мужчиной и женщиной? Понимает, но Слушай ты пошел он скажет женщине. Это въедается.
Зачем нужен такой программист, который SQL не осилил?
Вангую, что у них в коде SQL на 10 страниц.
Производительность C++ vs. Java vs. PHP vs. Python. Тест «в лоб»
/update/ Статья обновлена по результатам обсуждения. Поправлен код Python (около 40% ускорения), написан код на Perl и Ruby (но меня терзают смутные сомнения, что с ruby я что-то сделал неправитьно), поправлен код на Java (на моей машине корректнее тестировать int, а не long. к тому же int в Java эквивалентен long в C++).
Вопрос производительности (скорости работы) различных языков часто всплывает в комментариях, на форумах, часто необоснованные :). Встречаются статьи, в которых авторы приводят примеры, где выигрывает реализация на том или ином языке.
После прочтения очередной статьи мне захотелось самому разобраться «здесь и сейчас». Сначала захотелось сравнить Java и C++ (не верил я, что в вычислительных тестах ява может догнать и обогнать cpp). 10 минут и простой код на C++ и яве готов: простой цикл и математические операции. После написания теста подумал и перевёл их на php и python. Позже добавился код на perl и ruby.
Итак, пару слов о тесте:
Алгоритм синтетический, долгий цикл (двухуровневый) и в нём вычисление математического выражения. Таким образом оценивается вычислительная производительность самого языка (интерпретатора или скомпилированного кода), никаких привязок к качеству реализации тех или иных библиотек, никаких внешних сервисов, никаких системозависимых операций (диск, сеть, графика).
1) Мне нравится ява и я честно предполагал, что результаты будут лучше. Обновлено: long в 64-х битных системах работает значительно быстрее. При работе с int в 32-х битных системах Java значительно ускоряется (на моей машине быстрее, чем C++, видимо, JVM оптимизирует исполнение по умолчанию)
2) Я догадывался, что php будет медленней C++ и Java, но не думал, что он окажется быстрее Perl.
3) Предполагал, что Python будет сопоставим с PHP, но ошибся. Видимо, стандартная поставка PHP лучше оптимизирует исполнение кода.
4) Я совсем не знаком с Ruby, код взят из одного из комментариев. Причём использован код 1, так как у меня он работает быстрее чем код 2. Возможно, это также связано с тем, что у меня 32bit-система.
5) Я достаточно уважительно отношусь к различным языкам программирования, эта статья ни одним из углов не нацелена на разжигание холиваров. Каждый язык имеет свою нишу и своих поклонников.
Чтобы не заставлять вас читать всю статью, сразу приведу краткие результаты.
Диаграмма (обновленная):
Старый вариант здесь
На диаграмме слолбец с Ruby частично прозрачен по причине того, что на моей машине скрипт Ruby исполнялся неприлично долго, в то время как в комментарии указано, что скрипт исполняется в 4 раза быстрее скрипта на Python — я в замешательстве.
Столбец с Python прозрачен, так как при включении psyco скрипт ускоряется более чем в 10 раз. Проверил на своей машине. Но это, с моей точки зрения, хак, не отражающий собственную производительность языка.
Столбец с PERL, как могут заметить старожилы, теперь идёт вровень с Python 2.6. Причиной этому послужила смена кода с C-подобного синтаксиса на использование range. Дополнительную производительность (около 12%) можно получить использовав директиву «use integer;», но это, по-моему, тоже хак.
30
Время исполнения — на P4-1.8Ггц.
Производительность — относительно производительности базового кода на C++.
Добавлен столбец с запуском Java-кода с ключём «-server». После перехода с «long» на «int» (повторюсь, int в java такой же как и long в c++ на 32bit-arch) он начал давать прирост в производительности почти вдвое.
Столбец с Ruby 1.9 на моём железе не тестировался, результат перенесён через сравнение с производительностью Python’а на той же машине.
И, чтобы не быть голословным, тестовый код.
Java, Test01.java (int в Java то же что и long в C++):
#include
using namespace std;
int main( void ) <
long r = 0;
for ( int i = 0; i for ( int j = 0; j «answer: «
Python, Test01.py (вынос кода в функцию ускоряет работу кода почти вдвое, отдельная же инициализация range() на моей машине даёт порядка 5% производительности):
Perl, Test01.pl (обновлено, с range работает на 25% быстрее против c-подобного синтаксиса for):
Вот здесь приведён красивый пример на Perl, но, мне кажется, такой вариант уже слишком специфичен.
r = 0
for i in 0..10_000 do
for j in 0..10_000 do
r = ( r + ( i * j ) % 100) % 47
end
end
puts «answer: #»
Вот здесь в комментариях обсуждают решение на erlang.
Как видите, ничего сложного: два цикла и математическое выражение. Вычислительная задача в чистом виде.
мой оригинал — там старая версия статьи, а также информация об версиях использованного ПО и результаты тестов из консоли.
Ещё раз повторюсь: каждый язык имеет свою нишу, своих поклонников и свои задачи, с решением которых он справляется лучше других.
PS: а вообще, нет смысла загоняться и меряться чем бы то ни было, производительность самого языка важна для достаточно узкого круга задач, т.к. в общем случае, системы, библиотеки и прочая обвязка нынче несоизмеримо тяжелее самой вычислительной задачи.