php-APC介紹

前面幾篇文章提到了APC.不少人問我:APC是什麼?這裏作個比較全面的介紹:
APC,全稱是Alternative PHP Cache,官方翻譯叫」可選PHP緩存」,但我我的以爲應該叫」另外一個PHP緩存」.由於這個東西若是叫」可選PHP緩存」,容易給人一種可要可不要的,不怎麼有用的錯覺.
APC的主頁是:<a href=」http://pecl.php.net/package/apc」 mce_href=」http://pecl.php.net/package/apc」>http://pecl.php.net /package/apc</a>.目前的版本是3.0.14,經過PECL安裝,須要php4.3.0或更高版本.
<b>APC的安裝:</b>
通常是下載源代碼而後phpize來編譯安裝,安裝完之後在加上php.ini里加上
<coolcode>
extension=apc.so
</coolcode>
這麼一行就好了.
<b>APC的使用</b>
APC的使用其實倒說不上.APC是個優化器,自安裝之日起,就默默地在後臺爲您的PHP應用服務了.您的全部PHP代碼會被緩存起來.

另外,APC可提供必定的內存緩存功能.可是這個功能並非十分完美,有報告說若是頻繁使用APC緩存的寫入功能,會致使不可預料的錯誤.若是想使用這個功能,能夠看看apc_fetch,apc_store等幾個與apc緩存相關的函數.
從PHP5.2開始,APC引入了一個小甜餅,解決了困擾你們已久的大文件上傳的進度條問題.具體請看看我這篇<a href=」http://www.162cm.com/archives/406.html」 mce_href=」http://www.162cm.com/archives/406.html」>blog</a>.
<b>APC的高級使用</b>
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.狀態控制和分析:
APC的源碼包自帶了一個apc.php;您能夠將這個文件上傳到web服務器的某個目錄下,用瀏覽器訪問,這會顯示當前的狀態.咱們能夠從這裏的表格分析當前的緩存情況,做出進一步優化.
apc-info-clublocalhost2.png
這是某test站點的狀態.您能夠慢慢分析,這個工具會提供不少有用的工具.好比您能夠看到哪些文件常常被包含(訪問),您緩存的哪一個變量常常被讀取,或常常被更新等.
最後順便提一句,有獨立報告說,APC的代碼緩存、優化效果要高出zend優化器.就算不是真的,他開源而又免費,實在是一個至關不錯的選擇.php

相關文章
相關標籤/搜索