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

Добавление ответа, поскольку принятый ответ содержит много информации, не относящейся к WebGL2

Во время инициализации вы звоните uniformBlockBinding. Для данной программы она устанавливает, с какой точки привязки индекса унифицированного буфера эта конкретная программа получит конкретный унифицированный буфер.

Во время рендеринга вы вызываете bindBufferRange или bindBufferBase для привязки определенного буфера к определенной точке привязки индекса унифицированного буфера

Если вам также необходимо загрузить новые данные в этот буфер, вы можете затем вызвать bufferData

В псевдокоде

// at init time

for each uniform block
   gl.uniformBlockBinding(program, indexOfBlock, indexOfBindPoint)

// at render time

for each uniform block
   gl.bindBufferRange(gl.UNIFORM_BUFFER, indexOfBindPoint, buffer, offset, size)
   if (need to update data in buffer)
      gl.bufferData/gl.bufferSubData(gl.UNIFORM_BUFFER, data, ...)

Обратите внимание, что «правильной» последовательности не существует. Проблема в том, что как вы обновляете свои буферы, действительно зависит от вас. Поскольку вы можете хранить несколько унифицированных данных буфера в одном буфере с разными смещениями, то вызов gl.bufferData/gl.bufferSubData, как описано выше, на самом деле не является «правильным», это всего лишь один способ из 100 с.

WebGL2 (GLES 3.0 ES) не поддерживает layout(binding = x), упомянутый в принятом ответе. Также нет такой вещи как glGenBuffers в WebGL2

14
задан cletus 7 August 2009 в 19:52
поделиться

9 ответов

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

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

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

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

32
ответ дан 1 December 2019 в 06:59
поделиться

PHP работает нормально. Если, конечно, вы не разрабатываете трехмерные игры.

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

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

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

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

4
ответ дан 1 December 2019 в 06:59
поделиться

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

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

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

2
ответ дан 1 December 2019 в 06:59
поделиться

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

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

Также на днях я проверил размер приложения PHP.

  • PHPBB 1,3 МБ
  • Joomla 6 МБ
  • Wordpress 11,3 МБ

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

2
ответ дан 1 December 2019 в 06:59
поделиться

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

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

0
ответ дан 1 December 2019 в 06:59
поделиться

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

0
ответ дан 1 December 2019 в 06:59
поделиться

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

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

0
ответ дан 1 December 2019 в 06:59
поделиться

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

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

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

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

ура, младший

0
ответ дан 1 December 2019 в 06:59
поделиться

Вы можете найти эти слайды выступления Расмуса несколько актуально и интересно: talk.php.net/show/drupal08/

0
ответ дан 1 December 2019 в 06:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: