OpCache - понимание того, как работает кэш, для каждого пользователя или для каждого ресурса?


Я использую OpCache, так как он поставляется с PHP 5.5.x, и я действительно доволен им, но я хотел бы настроить его настройки памяти, и вот тут мое понимание становится недостаточным...

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

Кэш работает для каждого пользователя (и кэшированные коды операций применяются только для запросов этого конкретного пользователя) или они применяются к любому запросу, использующему эти кэшированные коды операций?

Что я хотел бы сделать, так это настроить OpCache на использование определенного объема памяти, но я не знаю, работает ли пул памяти для каждого пользователя или он действует как общий пул ресурсов.

Не могли бы вы дать мне подсказку?

Author: Julio María Meca Hansen, 2013-12-02

1 answers

Вы уже правы относительно того, как код операции хранится в кэше и считывается из общей памяти. Однако это происходит не на уровне пользователя, а скорее на уровне сценария. Каждый php-файл, который был проанализирован и скомпилирован в код операции, будет сохранен в общей памяти и выполнен оттуда. Шаги синтаксического анализа и компиляции , которые в противном случае являются медленными, будут сокращены для каждого кэшированного сценария.

enter image description here

Чтобы ответить на ваш вопросы, нет, кэш работает не для каждого пользователя, а для каждого сценария. Кэшированный код операции по-прежнему выполняется обработчиком сценариев (в основном Zend) по запросу.

И да, он считывает данные из общей памяти.

Ссылка Д. Шафик: Все, Что Вам нужно знать О Кэшах кодов операций

 7
Author: Awemo, 2014-04-10 19:58:36