Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про PHP: opcache, caching

Что такое кэш в PHP и как работает OPcache?

Этот вопрос проверяет понимание механизмов кэширования в PHP и знание работы OPcache для оптимизации производительности.

Короткий ответ

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

Длинный ответ

Определение кэширования в PHP

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

Типы кэширования в PHP

Кэширование на уровне приложения

  • Кэширование данных (Redis, Memcached)

  • Кэширование HTML страниц

  • Кэширование запросов к базе данных

Кэширование на уровне PHP

  • OPcache - кэширование байт-кода

  • Preloading - предзагрузка классов

Как работает OPcache

Процесс выполнения PHP без OPcache

  1. Чтение PHP файла с диска

  2. Лексический анализ (токенизация)

  3. Синтаксический анализ (парсинг)

  4. Генерация байт-кода

  5. Выполнение байт-кода

Процесс выполнения PHP с OPcache

  1. Проверка наличия скомпилированного кода в кэше

  2. Если есть - выполнение из кэша

  3. Если нет - компиляция и сохранение в кэш

Конфигурация OPcache

Основные настройки в php.ini

ini

; Включение OPcache
opcache.enable=1

; Размер памяти для кэша (в мегабайтах)
opcache.memory_consumption=128

; Максимальное количество файлов в кэше
opcache.max_accelerated_files=10000

; Проверка изменений файлов
opcache.validate_timestamps=1
opcache.revalidate_freq=2

Преимущества OPcache

Улучшение производительности

  • Снижение нагрузки на CPU

  • Уменьшение времени выполнения скриптов

  • Эффективное использование памяти

Стабильность

  • Предсказуемое время выполнения

  • Снижение вероятности ошибок компиляции

Мониторинг OPcache

Получение статуса OPcache

php

// Получение информации о статусе OPcache
$status = opcache_get_status();

echo "Использование памяти: " . $status['memory_usage']['used_memory'] . "\n";
echo "Свободная память: " . $status['memory_usage']['free_memory'] . "\n";
echo "Кэшировано скриптов: " . $status['opcache_statistics']['num_cached_scripts'] . "\n";
echo "Хиты кэша: " . $status['opcache_statistics']['hits'] . "\n";
echo "Промахи кэша: " . $status['opcache_statistics']['misses'] . "\n";

Сброс кэша

php

// Принудительный сброс кэша (полезно при деплое)
opcache_reset();

Preloading в PHP 7.4+

Концепция предзагрузки

  • Загрузка классов в память при запуске PHP

  • Исключение времени компиляции для часто используемых классов

Настройка preloading

ini

; Включение preloading
opcache.preload=/path/to/preload.php

Пример preload.php

php

<?php
// Предзагрузка часто используемых классов
opcache_compile_file('vendor/symfony/http-foundation/Request.php');
opcache_compile_file('vendor/symfony/http-foundation/Response.php');

Практические рекомендации

Настройка для production

ini

opcache.validate_timestamps=0
opcache.enable_cli=0
opcache.memory_consumption=256
opcache.max_accelerated_files=20000

Настройка для development

ini

opcache.validate_timestamps=1
opcache.revalidate_freq=0
opcache.enable_cli=1

Вывод: OPcache - критически важное расширение для production сред, которое значительно ускоряет выполнение PHP приложений. Правильная настройка OPcache позволяет достичь максимальной производительности при минимальных затратах ресурсов.

  • Аватар

    PHP Guru

    Mikhail Savin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    5

  • Сложность:

    6

Навыки

  • PHP

    PHP

Ключевые слова

#opcache

#caching

Подпишись на PHP Developer в телеграм

  • Аватар

    PHP Guru

    Mikhail Savin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.