2010-03-01 3 views
4

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

+0

С HipHop все причины для выбора другого языка из-за скорости в большинстве случаев являются излишними. – Layke

+2

@Laykes Вы не можете серьезно рассматривать решение HipHop, если ваш сайт не сопоставим с потребностью Facebook в масштабируемости. Это нишевый продукт с очень узкой областью применения. – Gordon

+0

@ Josh по сравнению с другими языками? И какой другой язык вы изучаете? – Gordon

ответ

11

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

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

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

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

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

+0

Facebook выпустил инструмент для компиляции PHP, это так важно. –

+1

Flickr - это в основном данные изображения, не связанные с PHP, поэтому давление на веб-серверы подаётся для подачи данных. Википедия сильно использует кеширование. Facebook использует кеширование и делает тяжелый подъем на бэкэнд с использованием C++, Java и т. Д. –

+1

@ Ниссан, это своего рода точка. Процессор редко является узким местом для веб-сайта. – cletus

1

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

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

Подробнее о APC и других ускорителях PHP можно узнать по адресу Wikipedia.

2

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

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

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

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

1

Это зависит от случая использования.Хороший пример для иллюстрации этого:

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

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

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

Смежные вопросы