PHP APC的安裝與高級(jí)使用
PHP語(yǔ)言是一個(gè)功能強(qiáng)大的嵌入式HTML腳本語(yǔ)言,很多程序員都在使用這一語(yǔ)言來(lái)進(jìn)行網(wǎng)站的創(chuàng)建。PHP APC,全稱是Alternative PHP Cache,官方翻譯叫”可選PHP緩存”,但我個(gè)人覺(jué)得應(yīng)該叫”另一個(gè)PHP緩存”。
#t#因?yàn)檫@個(gè)東西如果叫”可選PHP緩存”,容易給人一種可要可不要的,不怎么有用的錯(cuò)覺(jué)。
APC的主頁(yè)是:http://pecl.php.net /package/apc.目前的版本是3.0.14,通過(guò)PECL安裝,需要php4.3.0或更高版本.
PHP APC的安裝:
一般是下載源代碼然后phpize來(lái)編譯安裝,安裝完以后在加上php.ini里加上
extension=apc.so
這么一行就行了.
PHP APC的使用:
APC的使用其實(shí)倒說(shuō)不上.APC是個(gè)優(yōu)化器,自安裝之日起,就默默地在后臺(tái)為您的PHP應(yīng)用服務(wù)了.您的所有PHP代碼會(huì)被緩存起來(lái). 另外,APC可提供一定的內(nèi)存緩存功能.但是這個(gè)功能并不是十分完美,有報(bào)告說(shuō)如果頻繁使用APC緩存的寫入功能,會(huì)導(dǎo)致不可預(yù)料的錯(cuò)誤.如果想使用這個(gè)功能,可以看看apc_fetch,apc_store等幾個(gè)與apc緩存相關(guān)的函數(shù). 從PHP5.2開(kāi)始,APC引入了一個(gè)小甜餅,解決了困擾大家已久的大文件上傳的進(jìn)度條問(wèn)題.
PHP APC的高級(jí)使用
1.緩存期限: APC的緩存分兩部分:系統(tǒng)緩存和用戶數(shù)據(jù)緩存.
系統(tǒng)緩存 是自動(dòng)使用的,是指APC把PHP文件源碼的編譯結(jié)果緩存起來(lái),然后在再次調(diào)用時(shí)先對(duì)比時(shí)間標(biāo)記。如果未過(guò)期,則使用緩存代碼運(yùn)行。默認(rèn)緩存 3600s(一小時(shí)).但是這樣仍會(huì)浪費(fèi)大量CPU時(shí)間.因此可以在php.ini中設(shè)置system緩存為永不過(guò)期(apc.ttl=0).不過(guò)如果這樣設(shè)置,改運(yùn)php代碼后需要restart一下您的web服務(wù)器(比如apache…).目前對(duì)APC的性能測(cè)試一般指的是這一層cache;
用戶數(shù)據(jù)緩存 由用戶在編寫php代碼時(shí)用apc_store和apc_fetch函數(shù)操作讀取、寫入的.如果量不大的話我建議可以使用一下.如果量大,我建議使用memcache會(huì)更好. 如果要享受APC帶來(lái)的緩存大文件上傳進(jìn)度的特性,需要在php.ini中將apc.rfc1867設(shè)為1,并且在表單中加一個(gè)隱藏域APC_UPLOAD_PROGRESS,這個(gè)域的值可以隨機(jī)生成一個(gè)hash,以確何唯一.具體例子請(qǐng)參見(jiàn)前面給出的鏈接.
2.狀態(tài)控制和分析: PHP APC的源碼包自帶了一個(gè)apc.php;您可以將這個(gè)文件上傳到web服務(wù)器的某個(gè)目錄下,用瀏覽器訪問(wèn),這會(huì)顯示當(dāng)前的狀態(tài).我們可以從這里的表格分析當(dāng)前的緩存狀況,作出進(jìn)一步優(yōu)化. apc-info-clublocalhost2.png 這是某test站點(diǎn)的狀態(tài).您可以慢慢分析,這個(gè)工具會(huì)提供很多有用的工具.比如您可以看到哪些文件經(jīng)常被包含(訪問(wèn)),您緩存的哪個(gè)變量經(jīng)常被讀取,或經(jīng)常被更新等. 最后順便提一句,有獨(dú)立報(bào)告說(shuō),PHP APC的代碼緩存、優(yōu)化效果要高出zend優(yōu)化器.就算不是真的,他開(kāi)源而又免費(fèi),實(shí)在是一個(gè)相當(dāng)不錯(cuò)的選擇