Акселератор PHP

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Акселератор PHP — расширение для PHP, основное назначение которого — увеличение производительности интерпретатора при обработке сценариев путем кэширования их байт-кода.

Принцип работы[править | править вики-текст]

Как выглядит обработка сценария на PHP обычным интерпретатором:

  1. Чтение файла
  2. Генерация байткода
  3. Выполнение кода
  4. Выдача результата

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

Для обхода этого узкого места были разработаны акселераторы PHP — модули, кэширующие скомпилированный байт-код в памяти и/или на диске и в разы увеличивающие производительность PHP.

Существующие решения[править | править вики-текст]

Alternative PHP Cache (APC)[править | править вики-текст]

The Alternative PHP Cache[1] (APC) — бесплатный и открытый opcode кэшер для PHP. Он был задуман, как бесплатный, открытый и стабильный фреймворк для кэширования и оптимизации исходного кода PHP, также возможно кэширование пользовательских данных.

Поддерживает PHP4 и PHP5, включая 5.3 и 5.4.

Это расширение PECL[2] (см. "Установка расширений PECL"[3]) не поставляется вместе с PHP[4].

Использовался на серверах Википедии (до обновления версии PHP).

Последняя версия: 3.1.13 от 03.09.2012[5]

Статус проекта: разработка прекращена

eAccelerator[править | править вики-текст]

eAccelerator — это свободный открытый проект, выполняющий роли акселератора, оптимизатора и распаковщика. Также встроены функции динамического кэширования контента. Есть возможность оптимизации PHP-скриптов для ускорения их исполнения.

Поддерживает PHP4 и PHP5, включая 5.4.

Начиная с июля 2012 проектом занимается Hans Rackers, в master-ветке репозитория на GitHub

Последняя правка от 16.08.2012

Статус проекта: разработка прекращена

PhpExpress[править | править вики-текст]

Проприетарный проект. PhpExpress является бесплатным ускорителем обработки php-скриптов на веб-сервере. PhpExpress также обеспечивает поддержку загрузки файлов закодированных через Nu-Coder. Модуль прост в установке и использовании, при этом PhpExpress обеспечивает значительное увеличение скорости выполнения скриптов PHP. Файлы компилируются в байт-код и кэшируются в оперативной памяти сервера. Распространяется программа бесплатно и без ограничений.

Поддерживает PHP4 и PHP5, включая 5.3

Последняя версия: 3.1 от 2014

Статус проекта: похоже, разработка прекращена

Windows Cache Extension for PHP[править | править вики-текст]

PHP-акселератор[6] для Internet Information Server от Microsoft (BSD License[7]). На 09.06.2013 для скачивания предлагалась версия 1.3 для 32-битной версии PHP. Windows Cache Extension кэширует php-файлы, php-байткод и имеет конфигурируемый пользовательский кэш. Расширение имеет PHP-API для контроля и наблюдения за состоянием кэша. Распространяется программа бесплатно.

Поддерживает PHP5, включая 5.6.

Статус проекта: развивается

XCache[править | править вики-текст]

Поддерживает функции оптимизации скриптов, кэширование байт-кода в оперативную память, кэширование пользовательских данных в shared memory, простое профилирование работы скриптов. Имеет собственный GUI, наличие и использование которого, однако, не обязательно для функционирования пакета. Бесплатен. Автор всегда делал основной упор на "стабильность работы"[8].

Поддерживает PHP4 и PHP5, включая 5.6

Последняя стабильная версия: 3.2.0 от 18.09.2014

Статус проекта: развивается

Zend OPcache[править | править вики-текст]

Zend OPcache[9] (ранее назывался "Zend Optimizer+") обеспечивает более быстрое выполнение PHP кода, посредством кэширования и оптимизации. Он улучшает PHP производительность, сохраняя скомпилированный байт-код в разделяемой памяти. Zend OPcache включен по умолчанию начиная с PHP 5.5.

Как расширение PECL поддерживался в версииях 5.2, 5.3 и 5.4.

Поддерживает PHP5, включая 5.6.

Последняя версия 7.0.5 от 14.04.2015

Статус проекта: развивается

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

Ссылки[править | править вики-текст]