我的問題: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