В крупномасштабной разработке систем кэш, несомненно, имеет решающее значение. В мире PHP, хотя и не так много решений для кэширования, как в Java, все же есть некоторые зрелые решения. Из «продвинутого программирования PHP» я узнал следующее:
1. Оптимизация на уровне языка. PHP имеет множество API-интерфейсов уровня механизма. С помощью этих API можно изменить поведение выполнения механизма для достижения цели оптимизации работы. Среди них самое полезное — кэшировать результаты компиляции. Как мы все знаем, каждый раз, когда PHP выполняется, ему необходимо пройти процесс исходного кода -> компиляция -> промежуточный код -> выполнение движка. Для некоторых крупных приложений значительное количество времени тратится на бесполезную компиляцию (не). только PHP, который обращается к странице) Файлы должны пройти процесс компиляции. Когда в скрипте используются require() и include(), некоторые включенные файлы необходимо скомпилировать). Кэшируя результаты компиляции, можно значительно повысить производительность системы (пропорционально сложности и масштабу системы).
Три основных инструмента в мире PHP, которые могут реализовать кеш компиляции:
Zend Accelerator — коммерческий недорогой кеш-компилятор с закрытым исходным кодом, производимый Zend Industries.
ionCube Accelerator — коммерческий, но бесплатный кеш-компилятор с закрытым исходным кодом, написанный Ником Линдриджем и распространяемый его компанией ionCube.
APC — бесплатный кэш компилятора с открытым исходным кодом, написанный Дэниелом Каугиллом и Джорджем Шлосснаглом.
Метод установки APC, APC включен в PECL, конкретная установка выглядит следующим образом: 190-823 190-802:
Послезапуска команды
#pear install apc
в php.ini Добавьте
в файлрасширение = /path/to/apc.so
. Таким образом, установка будет завершена. При следующем запуске php APC будет автоматически активирован, а результаты компиляции будут кэшированы в общий доступ. памяти При следующем выполнении получите результаты редактирования непосредственно из памяти и выполните их без повторной компиляции.
Вопрос: Может ли APC автоматически перекомпилировать PHP, который изменился с момента последней компиляции?
2. Оптимизация PHP-кода. Используйте некоторые инструменты для создания высококачественного промежуточного кода после компиляции. Подробности следующие:
Zend Optimizer — это оптимизатор с закрытым исходным кодом, но он доступен бесплатно.
Ускоритель ionCube содержит встроенный оптимизатор.
оптимизатор для проверки концепции в PEAR.
Основные функции оптимизатора:
1. Удаление ненужного кода, например мертвого кода, который никогда не будет выполнен.
2. Вычисление констант, например, изменение $секунд_in_day = 24*60*60 непосредственно на $секунды_in_day = 86400
3. Другие функции оптимизации кода, такие как этот оператор:
$count++
будут оптимизированы до ++$count; исполнение быстрее. Конечно, если оператор $i = $count++, оптимизация выполняться не будет;