APC работает, сохраняя коды операций из файлов PHP в общей памяти. Когда PHP используется с веб-сервером (например, Apache), общая память имеет долгий срок службы. При вызове из командной строки кеш APC создается и уничтожается для каждого процесса. APC по умолчанию отключен в командной строке, вероятно, из-за этого.
У меня есть теория, что использование APC принесет пользу, если процесс PHP будет разветвлен (с pcntl_fork()
, поскольку предположительно может использоваться тот же кеш кода операции. Это может применяться только к файлам, включенным после вилки.
Как лучше всего это проверить? Может ли кто-нибудь проверить это или объяснить, верна теория или нет?
<?php
if (pcntl_fork()) {
// parent
include 'huge-file.php';
} else {
// child
sleep(1); // stop race condition
include 'huge-file.php'; // will this use APC's cache?
}