@springimport

Какая разница между opcache и APCu cache?

Переход с 5.x до 5.6 ускорил выполнение кода. Переход с 5.6 до 7.x дал еще большее ускорение выполнения. Открытие opcache позволило еще больше ускорить и без того быстрый php.
И вот сегодня, экспериментируя с оптимизацией class autoloader в composer, я открываю для себя apcu. Не то чтобы я не знал про него раньше, но когда я его все же заставил работать, установив dev-версию php и собрав через pecl, результат меня очень удивил: время генерации страниц упало в 3-5 раз. С такой скоростью кажется что страницы вообще статичные.

Сразу пошел читать что именно есть этот apcu и пока не смог до конца разобраться. Все усложняет множество устаревшей информации. Хотя одно хорошее пояснение все же нашел:

APC is opcode cache and data store
APCu is only data store
OPcache is only opcode cache

Так много разнообразных кэшэй что просто потерялся в них.

1. Так ли это что APCu может работать в связке с opcache (в контексте php 7.1+)?
2. Является ли APCu такой же незаметной прослойкой как opcache? Или есть побочные эффекты в виде необходимости очищать кэши?
3. Что значит: "APCu is only data store"?
  • Вопрос задан
  • 5902 просмотра
Пригласить эксперта
Ответы на вопрос 2
kotomyava
@kotomyava
Системный администратор
1. Да, конечно. Надо понимать, что они совсем для разных целей, один для пользовательских данных, второй для кеширования промежуточного результата обработки самого скрипта.
2. Нет, его надо самостоятельно использовать в скрипте, и класть туда данные какие-то которые надо кешировать, ну также, конечно, его может использовать уже готовый скрипт или библиотека какая-нибудь, относительно незаметно. Если всё написано правильно, то сброс кеша кроме повышения нагрузки не должен иметь последствий...
3. Это значит, что это просто хранилище данных. Их можно туда положить и оттуда забрать, довольно быстро.
Ответ написан
Комментировать
@402d
начинал с бейсика на УКНЦ в 1988
Имхо 2/B (см.по ссылке далее) реализовали на случай лишь бы было. (https://phptoday.ru/post/optimizaciya-zagruzchika-...
APCu в реальности не использовал. Мемкеш предпочитаю.
В ранних версиях php ключиком можно было выделить память не только для кеширования скриптов,
но немного и для данных - APC USER DATA.
На даже в те времена были достойные альтернативы. Так, что даже для кеширования скриптов, использовал другое.
Так, что композер --apcu-autoloader экзотика. В продакшене большинству подходит --classmap-authoritative
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект