Скорость PHP против других языков - PullRequest
5 голосов
/ 02 марта 2010

Я много слышал, что PHP медленнее, чем другие языки. Достаточно ли заметна разница в скорости, чтобы я переключился на другой язык? И если да, какой другой язык вы бы порекомендовали? Или какие бы хорошие оптимизации могли бы ускорить PHP?

Ответы [ 4 ]

12 голосов
/ 02 марта 2010

Этот вопрос часто возникает. Ответ:

  • Да, это медленнее, чем C #, Java, C / C ++ и т. Д.
  • Нет, это, вероятно, не будет иметь значения.

Вы можете создавать крупномасштабные системы PHP. 4 из 20 посещаемых веб-сайтов работают на PHP (Facebook, Yahoo, Wikipedia, Flickr). PHP с кешем кода операции (например, APC ) может продвинуть вас гораздо дальше, чем вам, вероятно, нужно или не нужно заботиться.

Большинство медленных сайтов не имеют ничего общего с языком, который они используют. Большая часть времени, затрачиваемого на HTTP-запрос, сводится к задержке в сети, отсутствию или неэффективному кэшированию статических ресурсов, отсутствию сжатия, что приводит к увеличению используемой пропускной способности, чем это необходимо, плохому выполнению JavaScript и т. Д.

Если вы действительно отчаянно нуждаетесь в производительности, вы всегда можете использовать HipHop , который компилирует PHP в C ++.

2 голосов
/ 02 марта 2010

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

Если вы сравните PHP, скажем, с C ++, конечно, это будет медленнее. Но вам нужно учитывать общую стоимость разработки. Тот факт, что один язык создает более быстрые программы, не означает, что он будет более экономически эффективным. В зависимости от вашего стиля программирования, опыта и проекта, над которым вы работаете, может оказаться, что для этой задачи лучше подходит другой язык.

Если вы используете кэш кода операции , вы получите очень большой прирост скорости, просто избавившись от необходимости доступа к диску и анализа файлов PHP.

Как и в случае с любым другим языком, вам необходимо знать структуры данных и способы их эффективного использования. Плохие алгоритмы будут медленными независимо от языка, но особенно на языке сценариев, где много «волшебства» происходит под капотом.

1 голос
/ 02 марта 2010

Зависит от варианта использования. Хороший пример, чтобы проиллюстрировать это:

  • Когда вы используете PHP в качестве языка веб-сценариев на стороне сервера, он будет быстрее, чем программа C / C ++, выполняющаяся как CGI (это потому, что для CGI необходимо создать отдельный процесс и выполнить некоторую настройку, в то время как PHP-скрипты работают внутри модуля http-сервера и просто «готовы к работе»)

  • С другой стороны, когда вы используете PHP для численных вычислений, он будет значительно медленнее, чем программа, написанная на C / C ++

PHP разработан, чтобы быть языком веб-программирования на стороне сервера, и для этого его следует использовать. Это достаточно эффективно для этой задачи, но вы можете ускорить его с помощью инструментов кэширования. Если даже этого недостаточно, вы можете написать расширение в Zend API.

1 голос
/ 02 марта 2010

Чтобы ускорить PHP, попробуйте APC - Альтернативный PHP Cache.

Он может кэшировать скомпилированный код, поэтому файлы исходного кода не нужно анализировать для каждого запроса.

Более подробную информацию о APC и других ускорителях PHP можно найти по адресу Wikipedia .

...