我的问题:CakePHP的:缓存与APC仍然创建缓存文件,没有性能优势
我提出的Apache Benchmark进行测试,看是否CakePHP的APC发动机的工作原理。但是,如果我将Cake的缓存配置设置为使用APC引擎,则带有序列化缓存数据的缓存文件仍在tmp文件夹中创建,这使我认为正在使用文件缓存。
我也没有性能好处:使用APC和文件引擎,测试结果是~4秒。如果我在我的控制器中硬编码apc_add()和apc_fetch函数,测试结果会变得更好:约3.5秒。
所以APC正在工作,但蛋糕一些为什么不能使用它。
我的设置:
bootstrap.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
如果我检查缓存::设置( )在缓存ex之前或之后在控制器中ecutuon,我得到这些结果:
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。
首先,我认为这个配置应该放在app/Config/core.php中,而不是放在你的bootstrap.php中。显然配置被识别,所以这不应该是问题。写在app/tmp目录中的缓存文件可能是由CakePHP本身编写的缓存文件,您是否检查过它们的内容?要检查是否有任何内容写入APC,可以使用APC控制面板,该面板可以通过APC附带的apc.php文件访问。不是直接的答案,但也许这有帮助 – thaJeztah 2013-03-18 19:24:18
@thaJeztah只有核心缓存进入core.php。默认的高速缓存配置和其他用户定义的配置在bootstrap.php中。 – ADmad 2013-03-18 20:29:41
@ADMD感谢您的信息。 CakePHP 2.x做了这个改变吗?这个曾经在CakePHP 1.x的core.php中,或者我误解了? – thaJeztah 2013-03-18 20:37:59