Недавно я начал использовать кэш APC на наших серверах. Одной из наиболее важных частей нашего продукта является процесс CLI (Cron/scheduled), производительность которого имеет решающее значение. Обычно пакетное задание состоит из параллельного запуска 16-32 процессов в течение часа (они «перезапускаются» каждые несколько минут).
По умолчанию использование кэша APC в CLI является пустой тратой времени из-за того, что кэш кода операции не сохраняется между отдельными вызовами. Но APC также содержит функции apc_bin_dumpfile()
и apc_load_dumpfile()
.
Я подумал, что эти две функции можно использовать для повышения эффективности APC в режиме командной строки, скомпилировав все это вне пакетного задания, сохранив в одном файле дампа и загрузив файл дампа отдельными процессами.
Есть ли у кого-нибудь опыт работы с таким сценарием, или вы можете привести веские причины, почему это сработает или не сработает? Можно ли разумно получить какой-либо значительный выигрыш в использовании памяти или производительности? Какие подводные камни скрываются в тени?