Windows Cache Extension для PHP — кеширующий модуль, который увеличивает скорость работы PHP-приложений на системах под управлением ОС Windows и Windows Server. Как только модуль Windows Cache Extension включается и загружается PHP-движком, приложения начинают получать преимущества модуля без изменения кода приложения.
Модуль включает 5 типов кешей. Далее рассказывается про назначение и преимущества каждого типа кеша.
PHP Opcode Cache — PHP — скриптовый язык, который читает входящий поток данных, который содержит текст и (или) инструкции языка и выдаёт новый поток данных, обычно в HTML-формате. То есть на стороне веб-сервера PHP читает, разбирает, компилирует и запускает PHP-скрипт каждый раз, когда скрипт клиент запрашивает. Чтение, разбор и компиляция создают дополнительную нагрузку на ядра процессора и файловую систему сервера, что сказывается на конечной производительности приложения. Кеширование языком PHP байт-кода (операционного кода, или опкода) держит уже скомпилированный код в разделяемой памяти и выполняет код при очередных запросах к тому же скрипту.
Поддержку кеширования опкодов удалили в модуле Wincache 2.0.0
.
Поэтому если требуется кеширование, лучше использовать PHP-модуль
OPcache.
File Cache — даже при включённом кешировании PHP-опкода движок PHP всё равно обращается к файлам скриптов в файловой системе. Когда PHP-скрипты хранятся в удалённом файловом общедоступном UNC-ресурсе, файловые операции значительно снижают производительность. Модуль Windows Cache Extension включает файловый кеш, который сохраняет содержимое скриптов в разделяемой памяти, что сокращает количество операций с файловой системой, которые выполняет PHP-движок.
Resolve File Path Cache — PHP-скрипты часто включают или оперируют файлами по относительным путям. Каждый путь файла PHP-движок сначала нормализует до абсолютного пути. Когда приложение обрабатывает много PHP-файлов и обращается к файлам по относительным путям, операция разрешения абсолютных путей негативно влияет на производительность приложения. Модуль кеша Windows предоставляет кеш разрешения путей к файлам Resolve File Path, который хранит сопоставления относительных и абсолютных путей, чем уменьшает количество операций разрешения путей, которые выполняет механизм PHP.
User Cache (доступен с версии 1.1.0) — PHP-скрипты умеют использовать преимущества кеширования в разделяемой памяти через API-интерфейс пользовательского кеша. Объекты и переменные PHP хранятся в пользовательском кеше и переиспользуются в очередных запросах. Этот тип кеша повышает производительность PHP-скриптов и разрешает обмениваться данными между PHP-процессами.
Session Handler (доступно с версии 1.1.0) — обработчик сессий WinCache хранит данные PHP-сессии в кеше разделяемой памяти. Этот тип кеша избегает дисковых операций при чтении и записи сессионных данных, что повышает производительность, когда в PHP-сессии хранится большой объём данных.