我的问题:
我正在做 Apache Benchmark 测试,看看 CakePHP APC 引擎是否工作。但是,如果我将 Cake 的缓存配置设置为使用 APC 引擎,带有序列化缓存数据的缓存文件仍在 tmp 文件夹中创建,这让我认为正在使用文件缓存。
我也没有获得任何性能优势:使用 APC 和文件引擎,测试结果约为 4 秒。如果我在控制器中硬编码普通的 apc_add() 和 apc_fetch 函数,测试结果会更好:~3.5 秒。
所以 APC 正在工作,但 Cake 不知何故不能使用它。
我的设置:
引导程序.php:
/*Cache::config('default', array(
'engine' => 'File',
'duration'=> '+999 days',
'prefix' => 'file_',
));*/
Cache::config('default', array(
'engine' => 'Apc',
'duration'=> '+999 days',
'prefix' => 'apc_',
));
控制器:
$catalogsLatest = Cache::read('catalogsLatest');
if(!$catalogsLatest){
$catalogsLatest = $this->Catalog->getCatalogs('latest', 5, array('Upload'));
Cache::write('catalogsLatest', $catalogsLatest);
}
php.ini:
[APC]
apc.enabled = 1
apc.enable_cli = 1
apc.max_file_size = 64M
如果我在缓存执行之前或之后检查控制器中的 Cache::settings(),我会得到以下结果:
Array
(
[engine] => Apc
[path] => E:\wamp\www\cat\app\tmp\cache\
[prefix] => apc_
[lock] => 1
[serialize] =>
[isWindows] => 1
[mask] => 436
[duration] => 86313600
[probability] => 100
[groups] => Array
(
)
)
我正在使用 CakePHP 2.2.4。