Какой из них быстрее php Кэширование на основе файлов или Opcache

1

Недавно я получил обновленную информацию о Opcache в php, и я мало знаком с кэшированием на основе файлов в Codeigniter.

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

Таким образом, я искал в Google, и некоторые веб-сайты сравнивали скорость кеширования, сравнивая его, где они упомянули. Кэширование файлов происходит медленно при извлечении по сравнению с другими методами кэширования memcache и Opcache php, и я путаюсь с отчетом.

Я знаю, что каждая техника кеширования имеет свои плюсы и минусы. Предложите мне ситуацию, чтобы моя страница не нуждалась в данных в реальном времени, и в настоящее время я использую кеширование на основе файлов. Так нормально ли идти в Opcache или Memache?

  • 0
    PHP - это интерпретируемый язык, а не скомпилированный язык, другими словами, когда PHP пытается использовать один из ваших файлов, он сначала читает его и преобразует (он же компилирует) в нечто, похожее на машинный код, который он может затем запустить. Это происходит каждый раз для каждого запроса. Что делает opcache - это сохраняет этот машинный код в кеше, чтобы PHP мог немедленно использовать его вместо чтения и анализа ваших PHP-файлов. Для сложных сайтов повышение скорости от этого может быть исключительным.
  • 0
    Если вашим отображаемым страницам не нужны данные в реальном времени / динамические данные, то кеширование файлов / страниц - это то, что вам нужно с точки зрения сервера. Установите заголовок expires, чтобы клиент кешировал его с точки зрения клиента.
Показать ещё 4 комментария
Теги:
caching
memcached
opcache

2 ответа

3

Память Opcache и Memcached хранятся в памяти. В подавляющем большинстве случаев извлечение данных из памяти происходит быстрее, чем извлечение данных из файловой системы. Недостаток? Запуск Memcached и использование opcache, очевидно, будут использовать некоторые из ваших серверов.

  • 0
    То есть вы говорите, что в Opcache результаты базы данных также сохраняются в памяти? а времени выполнения запросов к базе данных больше нет?
  • 1
    @Yadheendran - OpCache хранит исключительно байт-код скрипта, а не данные любого рода, поэтому результаты базы данных никогда не будут храниться в OpCache.
0

OPcache улучшает производительность PHP, сохраняя предварительно скомпилированный байт-код сценария в общей памяти, тем самым устраняя необходимость загрузки PHP и анализа скриптов по каждому запросу.
Файловое кэширование, о котором вы говорите, связано с кэшированием вашей переменной в файл и последующим ее получением. (часто используют, когда время для получения данных очень медленно)
Поэтому вы можете использовать кэширование на основе файлов для хранения своей переменной и использовать Opcache для кэширования вашего скрипта. Однако кэшировать ваши данные в память будет намного быстрее. В этом случае попробуйте Memcached/Redis или все, что вы можете найти.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню