Добавление ответа, поскольку принятый ответ содержит много информации, не относящейся к 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
Ответ на вопрос «Насколько хороша производительность PHP?» "достаточно хорошо".
Под этим я подразумеваю, что большинство проблем с производительностью веб-сайтов связаны с другими проблемами, такими как плохой дизайн базы данных, практически полное отсутствие кеширования, кэширование CSS / Javascript / изображений и так далее.
PHP - это используется некоторыми из крупнейших сайтов в Интернете, поэтому он прошел этот тест. Джефф Этвуд утверждает PHP отстой, но это не имеет значения . Есть вещи, за которые можно справедливо критиковать PHP (например, непоследовательный порядок параметров, непоследовательное именование функций, магические кавычки и т. Д.), Но я думаю, что он преувеличивает негатив.
Так что не выбирайте PHP (или нет) на основе предполагаемой производительности, потому что это не имеет значения (по сравнению со всем остальным).
PHP работает нормально. Если, конечно, вы не разрабатываете трехмерные игры.
Различия и незначительны, и пламенеющие. Потому что на самом деле это рубизм «кого волнует, быстро ли он масштабируется?» все это неправильно? См. № 2. Пример того, что вас замедляет.
Все, что требует времени. (Иронично, я знаю.) Но на самом деле это всегда зависит от того, как вы делаете то, что занимает время. Например, я могу написать два запроса с почти одинаковым выводом, но с увеличением скорости в 2,5 раза с лучшим синтаксисом / выбором. По большому счету, худшая трата времени в сценариях PHP - это доступ к файлам ... благодаря оборудованию. Таким образом, количество файлов, которые вы включаете / требуете, замедляет сценарий больше, чем его содержимое, особенно когда оно фрагментировано.
С помощью этой простой системы я ' я сделал так, чтобы моя собственная инфраструктура MVC была почти в 10 раз быстрее, чем приложение CodeIgniter с голыми костями; Да, он проще и минималистичнее, но он должен показать, что включение одного файла вместо одного на класс может привести к огромным разнице в скорости.
Пока его * AMP хорош, серверы Linux будут , или, конечно, быстрее. Я доволен обеими системами WAMP и LAMP, несмотря на очень разные аппаратные и программные различия. (Но система LAMP, в общем, самая быстрая, хотя и с меньшим количеством оборудования.)
Производительность PHP не так уж и плоха - по сравнению с C, его проиграет, но по сравнению с другими языками сценариев он примерно равен.
См. эту серию для интерактивного теста производительности, чтобы дать вам представление о некоторых показателях производительности.
Конечно, есть слайд-шоу, в котором говорится, что PHP редко является узким местом .
В настоящее время разрабатывается проект с разработчиками PHP по созданию более совершенных инструментов тестирования для PHP.
Руководитель проекта недавно выступил с докладом на Google Techtalks под названием Компиляция и оптимизация языков сценариев , и это очень интересный доклад.
Также на днях я проверил размер приложения PHP.
Эти данные загружены в память.
Использование правильных алгоритмов и структур данных гораздо важнее для производительности, чем использование определенного языка программирования (если их можно выразить на выбранном языке).
Таким образом, PHP может быть даже быстрее, чем C ++, если PHP-программист знает, что он делает.
Производительность значительно улучшается за счет использования кеша кода операции, такого как Альтернативный кеш PHP , который является бесплатным и обеспечивает значительное увеличение производительности на по сути "компилирование" ваших скриптов в операционные коды, которые могут использоваться Zend Engine напрямую без накладных расходов (часто используемый термин IMO) на синтаксический анализ кода при каждом запросе. Вы можете увидеть тест здесь и сообщение из моего блога об использовании кэша APC для ускорения Zend_Loader
Yahoo! использует PHP. http://public.yahoo.com/bfrance/radwin/talks/yahoo-phpcon2002.htm
Я не согласен с тем, что PHP всегда является узким местом. PHP так же масштабируем и эффективен, как Java или ASP. В конце пути все сводится к вашей базе данных, узкое место всегда начинается там.
PHP может быть не таким быстрым, как скомпилированные серверные языки, но он все равно довольно быстр и выполняет свою работу.
"Скорость" аспект php больше связан с пользовательским интерфейсом, чем с самой производительностью.
Приложения AJAX, основанные на PHP, не попадают в категорию «медленные» или «не отвечающие»: пользователь должен так много сделать, пока один запрос завершает! Кроме того, будучи «равномерно медленным» со всеми операциями гораздо менее болезненна для пользователя, чем показ нестабильной скорости работы.
В одном из предыдущих комментариев это довольно точно резюмировано: язык не мешает скорости! приложение doez.
ура, младший
Вы можете найти эти слайды выступления Расмуса несколько актуально и интересно: talk.php.net/show/drupal08/