Есть ли смысл минимизировать PHP?

Я знаю, что вы можете минимизировать PHP, но мне интересно, есть ли какой-то момент. PHP - интерпретируемый язык, поэтому он будет работать немного медленнее, чем скомпилированный язык. Мой вопрос: будут ли клиенты видеть заметное ускорение скорости при загрузке страниц, и если я должен был бы минимизировать мой PHP?

Кроме того, есть ли способ скомпилировать PHP или что-то подобное?

Ответ 1

PHP скомпилирован в байт-код, который затем интерпретируется поверх чего-то, похожего на виртуальную машину. Многие другие языки сценариев следуют одному и тому же общему процессу, включая Perl и Ruby. Это не традиционный интерпретируемый язык, например, BASIC.

Не было бы эффективного увеличения скорости, если вы попытались "минимизировать" источник. Вы получите значительное увеличение с помощью байта байт-кода, такого как APC.

Facebook представил компилятор с именем HipHop, который преобразует источник PHP в код на С++. Rasmus Lerdorf, один из больших PHP-ребята, сделал презентацию HHVM - новую виртуальную машину, основанную на их работе, создающей HipHop. Это по-прежнему довольно новое, и неясно, обеспечит ли он значительное повышение производительности для широкой общественности.

Чтобы убедиться, что это указано прямо, прочитайте эту презентацию в полном объеме. Он указывает на многочисленные способы сравнения и кода профиля и выявления узких мест с помощью таких инструментов, как xdebug и xhprof, также из Facebook.

Ответ 2

Откажитесь от идеи минимизации PHP в пользу использования кеша кода операции, например PHP Accelerator или APC.

Или что-то вроде memcached

Ответ 3

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

Однако я разрабатываю некоторые из моих приложений таким образом, что позволяет объединять скрипты вместе. С помощью php -w его можно значительно уплотнить, добавив небольшое ускорение скорости для запуска script. На сервере с поддержкой режима opcode это, однако, сохраняет только несколько проверок файлов mtime.

Ответ 4

Это меньше ответа, чем реклама. Я работаю над расширением PHP, которое преобразует кодовые коды Zend для работы на виртуальной машине со статической типизацией. Это не ускоряет произвольный PHP-код. Это позволяет вам писать код, который работает быстрее, чем позволяет обычный PHP. Ключевым моментом здесь является статическая типизация. На современном процессоре динамический язык питается от неправильного предсказания ветки влево и вправо. Факт, что массивы PHP являются хеш-таблицами, также накладывает большую стоимость: много неверных предсказаний отрасли, неэффективное использование кеша, плохая предварительная выборка памяти и отсутствие оптимизации SIMD. Неправильное предсказание отрасли и недостатки кэша, в частности, являются ахиллесовой пятой для современных процессоров. Моя маленькая виртуальная машина обходит эту проблему с помощью статических типов и массива C вместо хеш-таблицы. Результат заканчивается примерно в десять раз быстрее. Это использует интерпретацию байт-кода. Расширение может произвольно скомпилировать функцию через gcc. В этом случае вы получаете от двух до пяти раз больше скорости.

Здесь ссылка для всех, кого интересует:

https://github.com/chung-leong/qb/wiki

Опять же, расширение не является общим ускорителем PHP. Вы должны написать для этого код.

Ответ 5

Есть компиляторы PHP... см. этот предыдущий вопрос для списка; но (если вы не размер Facebook или не нацеливаете приложение на запуск на стороне клиента), они, как правило, намного больше проблем, чем они стоят

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

Ответ 6

Вам не нужно минимизировать PHP. Чтобы получить лучшую производительность, установите кеш Opcode; но идеальным решением было бы модернизировать ваш PHP до версии 5.5 или выше, потому что более новые версии имеют кеш-код операции по умолчанию, называемый Zend Optimiser, который работает лучше других http://massivescale.blogspot.com/2013/06/php-55-zend-optimiser-opcache-vs-xcache.html.

Ответ 7

Да, есть одна (нетехническая) точка.

Ваш хостер может отслеживать ваш код на своем сервере. Если вы уменьшите и уменьшите его, шпионам будет сложнее украсть ваши идеи.

Одной из причин уменьшения и уменьшения php может быть защита от шпионов. Я думаю, что некрасивый код должен сделать один шаг в автоматическом развертывании.