因為這個東西如果叫”可選PHP緩存”,容易給人一種可要可不要的,不怎麼有用的錯覺。
APC的主頁是:http://pecl.php.net /package/apc.目前的版本是3.0.14,通過PECL安裝,需要php4.3.0或更高版本.
PHP APC的安裝:
一般是下載源代碼然後phpize來編譯安裝,安裝完以後在加上php.ini裡加上
extension=apc.so
這麼一行就行了.
PHP APC的使用:
APC的使用其實倒說不上.APC是個優化器,自安裝之日起,就默默地在後台為您的PHP應用服務了.您的所有PHP代碼會被緩存起來. 另外,APC可提供一定的內存緩存功能.但是這個功能並不是十分完美,有報告說如果頻繁使用APC緩存的寫入功能,會導致不可預料的錯誤.如果想使用這個功能,可以看看apc_fetch,apc_store等幾個與apc緩存相關的函數. 從PHP5.2開始,APC引入了一個小甜餅,解決了困擾大家已久的大文件上傳的進度條問題.
PHP APC的高級使用
1.緩存期限: APC的緩存分兩部分:系統緩存和用戶數據緩存.
系統緩存 是自動使用的,是指APC把PHP文件源碼的編譯結果緩存起來,然後在再次調用時先對比時間標記。如果未過期,則使用緩存代碼運行。默認緩存 3600s(一小時).但是這樣仍會浪費大量CPU時間.因此可以在php.ini中設置system緩存為永不過期(apc.ttl=0).不過如果這樣設置,改運php代碼後需要restart一下您的web服務器(比如apache…).目前對APC的性能測試一般指的是這一層cache;
用戶數據緩存 由用戶在編寫php代碼時用apc_store和apc_fetch函數操作讀取、寫入的.如果量不大的話我建議可以使用一下.如果量大,我建議使用memcache會更好. 如果要享受APC帶來的緩存大文件上傳進度的特性,需要在php.ini中將apc.rfc1867設為1,並且在表單中加一個隱藏域APC_UPLOAD_PROGRESS,這個域的值可以隨機生成一個hash,以確何唯一.具體例子請參見前面給出的鏈接.
2.狀態控制和分析: PHP APC的源碼包自帶了一個apc.php;您可以將這個文件上傳到web服務器的某個目錄下,用浏覽器訪問,這會顯示當前的狀態.我們可以從這裡的表格分析當前的緩存狀況,作出進一步優化. apc-info-clublocalhost2.png 這是某test站點的狀態.您可以慢慢分析,這個工具會提供很多有用的工具.比如您可以看到哪些文件經常被包含(訪問),您緩存的哪個變量經常被讀取,或經常被更新等. 最後順便提一句,有獨立報告說,PHP APC的代碼緩存、優化效果要高出zend優化器.就算不是真的,他開源而又免費,實在是一個相當不錯的選擇