Насколько хороша производительность PHP?

Это результат недавней публикации, которая показала, что производительность PHP неудовлетворительна:

"PHP. ВСЕГДА. БОТТЛЕНЕК. Мои серверные фермы, позвольте мне показать вам их! Общая производительность PHP

а затем:

"Производительность PHP ужасно ужасна. Я основываюсь на своем опыте работы с OpenX (в Linux) и WordPress (на win64)".

Можем ли мы получить объективную информацию сообщества о том, хороша ли производительность PHP или плохо...

  • По сравнению с другими языками/временем выполнения
  • С точки зрения языка существуют ли какие-либо конкретные библиотеки или операции, которые лучше или хуже других?
  • С точки зрения сборки есть ли какие-либо версии или платформы, которые лучше или хуже других?

Ответ 1

Ответ на вопрос "Насколько хороша производительность PHP?" "Хорошо".

Под этим я подразумеваю, что большинство проблем с производительностью с веб-сайтами связаны с другими проблемами, такими как плохой дизайн базы данных, мало кэширование, кеширование CSS/Javascript/изображений и т.д.

PHP используется некоторыми из крупнейших сайтов в Интернете, поэтому он прошел этот тест. Джефф Атвуд утверждает, что PHP сосет, но это не имеет значения. Есть вещи, чтобы правильно критиковать PHP (например, несогласованный порядок параметров, несогласованное назначение функций, магические кавычки и т.д.), Но я думаю, что он преувеличивает негатив.

Поэтому не выбирайте PHP (или нет) на основе предполагаемой производительности, потому что это не имеет значения (по сравнению со всем остальным).

Ответ 2

Производительность PHP в порядке. Если вы не разрабатываете 3D-игры, конечно.

  • Различия как незначительные, так и пламенные приманки. Потому что, действительно, это рубизм "кто заботится, если он быстро, если он масштабируется?" все это неправильно? См. № 2 для примера того, что замедляет работу.

  • Все, что требует времени. (Иронично, я знаю.) Но на самом деле это всегда зависит от того, как вы делаете то, что вы делаете, что занимает время. Например, я могу написать два запроса с почти идентичным результатом, но до 2,5-кратного увеличения скорости с лучшим синтаксисом/выбором. По большому счету, худшее времяпрепровождение в PHP script - это доступ к файлам... благодаря аппаратным средствам. Таким образом, количество файлов, которые вы включаете/требуете, замедляет script больше, чем его содержимое делает особенно, когда фрагментировано.

    Благодаря этой простой системе я манипулировал своей собственной инфраструктурой MVC почти в 10 раз быстрее, чем приложение с открытым кодом CodeIgniter; он более простой и минималистичный, да, но он должен показать, что в том числе 1 файл, против 1 на класс, может сделать огромные различия в скорости.

  • До тех пор, пока его AMP хорошо, серверы Linux, или курс, будут быстрее. Я был доволен как моей системой WAMP, так и LAMP, несмотря на сильно отличающиеся аппаратные и программные различия. (Но система LAMP, в общем, самая быстрая, хотя и меньше в оборудовании.)

Ответ 3

Производительность PHP не так уж плоха - по сравнению с C, ее потерять, но по сравнению с другими языками сценариев она примерно одинакова.

Смотрите эту перестрелку для интерактивного теста производительности, чтобы дать вам представление о некоторых показателях производительности.

Конечно, есть это слайд-шоу, в котором говорится PHP редко является узким местом.

Ответ 4

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

Недавно руководитель проекта пообщался с Google Techtalks под названием "Компиляция и оптимизация языков сценариев" , и это очень интересный разговор.

Также я сделал проверку размера приложения PHP на другой день.

  • PHPBB 1.3mb
  • Joomla 6mb
  • Wordpress 11.3mb

Эти данные загружены в память.

Ответ 5

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

Итак, PHP может быть даже быстрее, чем С++, если PHP-программист знает, что он делает.

Ответ 6

Производительность значительно улучшена за счет использования кеша op-code, такого как Альтернативный кэш PHP, который является бесплатным и обеспечивает значительное увеличение производительности по существу "компиляция" ваших скриптов в op-коды, которые могут использоваться Zend Engine напрямую без накладных расходов (чрезмерно используемый термин IMO) для разбора кода по каждому запросу. Вы можете увидеть эталон здесь и сообщение из моего блога об использовании кеша APC для ускорение Zend_Loader

Ответ 7

Yahoo! использует PHP. http://public.yahoo.com/bfrance/radwin/talks/yahoo-phpcon2002.htm

Я не согласен с тем, что PHP всегда является узким местом. PHP такой же масштабируемый и эффективный, как Java или ASP. В конце пути это сводится к вашей базе данных, узкое место всегда будет начинаться там.

Ответ 8

PHP может быть не таким быстрым, как скомпилированные серверные языки, но он все еще довольно быстрый и выполняет работу.

Аспект "скорости" php имеет больше общего с пользовательским интерфейсом, чем с самой производительностью.

Приложения AJAX, основанные на PHP, не классифицируются как "медленные" или "невосприимчивые": пользователю так много всего нужно, пока выполняется один запрос! Кроме того, "равномерная медленность" со всеми операциями для пользователя намного менее болезненна, чем показ неустойчивой скорости работы.

Один из предыдущих комментариев обобщил это довольно точно: язык не имеет скорости! приложение doez.

cheers, jrh

Ответ 9

Вы можете найти эти слайды беседы, данные Rasmus, несколько актуальными и интересными: talks.php.net/show/drupal08/