Я услышал много, что PHP является медленным, сравнил другие языки. Действительно ли различие в скорости достаточно примечательно, который я должен переключить на другой язык? И раз так что другой язык Вы рекомендовали бы? Или какова была бы некоторая хорошая оптимизация, которая могла ускорить PHP?
Этот вопрос возникает часто. Ответ:
Вы можете создавать крупномасштабные системы на PHP. 4 из 20 самых посещаемых сайтов работают на PHP (Facebook, Yahoo, Wikipedia, Flickr). PHP с кэшем опкодов (например, APC) может продвинуть вас намного дальше, чем вам, вероятно, нужно или важно.
Большинство медленных веб-сайтов не имеют ничего общего с языком, который они используют. Большая часть времени, затрачиваемого на HTTP-запрос, приходится на сетевые задержки, отсутствие или неэффективное кэширование статических ресурсов, отсутствие сжатия, в результате чего используется больше полосы пропускания, чем необходимо, плохо работающий Javascript и т.д.
Если вы действительно отчаянно нуждаетесь в производительности, вы всегда можете использовать HipHop, который компилирует PHP в C++.
Это зависит от варианта использования. Хороший пример, иллюстрирующий это:
Когда вы используете PHP в качестве языка веб-сценариев на стороне сервера, он будет быстрее, чем программа C / C ++, работающая как CGI (это потому, что для CGI необходимо создать отдельный процесс и некоторые настройки должны быть выполнено, в то время как сценарии PHP выполняются внутри модуля http-сервера и просто «готовы к работе»)
С другой стороны, когда вы используете PHP для численных вычислений, он будет значительно медленнее, чем программа, написанная на C / C ++
PHP разработан как серверный язык веб-программирования, и для этой цели его следует использовать. Он достаточно эффективен для этой задачи, но вы можете ускорить его с помощью инструментов кеширования. Если и этого недостаточно, вы можете написать расширение в Zend API.
PHP будет достаточно быстрым для приложений веб-сайтов, если вы будете использовать передовой опыт.
Если вы сравните PHP, скажем, с C ++, конечно, он будет медленнее. Но нужно учитывать общую стоимость разработки. Тот факт, что на одном языке создаются более быстрые программы, не означает, что он будет более рентабельным. В зависимости от вашего стиля программирования, опыта и проекта, над которым вы работаете, вы можете обнаружить, что для этой задачи лучше подходит другой язык.
Если вы используете кэш опкодов , вы получите очень большой выигрыш в скорости, просто избавившись от необходимости обращаться к диску и анализировать файлы PHP.
Как и в случае с любым языком, вам необходимо знать структуры данных и то, как они должны использоваться эффективно. Плохие алгоритмы будут медленными независимо от языка, но особенно на языке сценариев, где под капотом творится много «волшебства».
Чтобы ускорить PHP, попробуйте APC - Alternative PHP Cache.
Он может кэшировать скомпилированный код, так что файлы исходного кода не нужно пересобирать при каждом запросе.
Больше информации об APC и других ускорителях PHP можно найти в Wikipedia.