Введение
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
. Так что если она вам нужна, то следует использовать модуль OPcache, который был включен в PHP начиная с PHP 5.5.0. -
File Cache - даже если включено кеширование опкодов, PHP все равно обращается к файлам на файловой системе. Когда PHP-скрипт размещен в удаленной файловой папке, файловые операции значительно снижают производительность. Windows Cache Extension включает файловое кеширование, которое используется для сохранения контента скриптов в разделяемой памяти, что сильно сокращает количество операций доступа к файловой системе для PHP.
-
Resolve File Path Cache - скрипты PHP довольно часто включают или оперируют файлами, используя относительные пути. Каждый такой путь сначала нормализуется PHP до абсолютного пути. Когда приложение использует большое количество файлов и обращается к ним по относительным путям, операции выведения абсолютных путей могут негативно сказаться на производительности. Модуль Windows Cache Extension предоставляет инструмент кеширования Resolve File Path, который используется для сохранения сопоставления относительных и абсолютных файловых путей, позволяя снизить количество операций их выведения.
-
User Cache (доступно с версии 1.1.0) - скрипты PHP могут получить преимущества кеширования в разделяемой памяти посредством API пользовательского кеширования. Объекты и переменные PHP могут быть сохранены в пользовательском кеше и переиспользованы в последующих запросах. Это может как повысить производительность приложения, так и разделить данные между несколькими процессами PHP.
-
Session Handler (доступно с версии 1.1.0) - обработчик сессий WinCache может быть использован для сохранения данных сессии в кеше в разделяемой памяти. Это позволяет избежать дисковых операций при записи и чтении данных сессии, что может сильно увеличить производительность, если таких данных много.