
Продолжение цикла переводов одной из частей книги «Surviving The Deep End» (первая часть, вторая часть). В этой части рассматриваются такие вопросы:
- Как правильно провести общую оптимизацию PHP кода?
- Кэширование байт-кода
- Кэш Realpath
Общая оптимизация PHP кода
У РНР есть много хорошо известных и не очень способов оптимизации кода, которые сейчас приняты как стандартную практику. Лишь некоторые из них стали более заметны в течении развития языка.
Кеширование байт-кода
Используя кеширование байт-кода, например, Alternative PHP Cache (APC), можно добиться значительного повышения производительности любого РНР приложения, путем кеширования промежуточного кода, что предотвратит постоянный парсинг исходного кода.
При таком подходе разобранный код сохраняется в памяти и не разбирается заново при каждом запросе. Это сократит время работы скриптов. Установка и использование подобного ПО должно стать стандартной практикой, особенно если Вы пользуетесь обычным хостингом.
Установка APC довольно проста:
Для установки на Windows пройдите на сайт http://pecl4win.php.net.
Для завершения установки необходимо настроить установленное расширение PHP в файле php.ini:
Приведенная конфигурация может дать самый разный эффект, поэтому для того, чтобы настроить все как требуется к прочтению рекомендуется документация http://php.net/manual/en/apc.configuration.php.
Особое внимание уделите таким опциям: apc.shm_size, apc.slam_defense (или apc.write_lock), apc.stat и apc.include_once_override. Вы должны убедиться, что параметр apc.shm_size установлен в минимальное значение, которого будет достаточно для кеширования всех Ваших классов (и всех других проектов, которые находятся на этом же сервере).
Также не забудьте посчитать туда еще и то, что Вы положите с помощью Zend_Cache или APC функций.
Realpath кеш
Одно из более инновационных улучшений в PHP это Realpath кеш, который был представлен с PHP 5.2.0. Решение было спроектировано для кеширования абсолютных путей к файлам, которые используются для функций require и include.
В предыдущих релизах было все по другому: каждый раз подключая файл по относительному пути, он разбирался вновь и вновь. Сейчас это делается один раз, записывается в кеш и храниться столько, сколько указанно в настройках. realpath_cache_size и realpath_cache_ttl две основные настройки. Первый задает величину кеша (по-умолчанию 16К, но стоит поставить побольше), а второй время его жизни (по-умолчанию 120, но можно поставить больше, в зависимости от того, как часто меняется расположение подключаемых скриптов).
Продолжение следует...
Предыдущие части:
- Первая часть
- Вторая часть
- Третья часть
- Четвертая часть
- Пятая часть
