APC 通过将 PHP 文件中的操作码存储在共享内存中来工作。当 PHP 与 Web 服务器(例如 Apache)一起使用时,共享内存的寿命很长。当从命令行调用时,将为每个进程创建和销毁 APC 缓存。默认情况下,APC 在命令行上被禁用,可能是由于这个原因。
我有一个理论,如果 PHP 进程是分叉的,那么使用 APC 会有好处(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?
}