基于php的緩存應(yīng)用方案性能分析與對(duì)比

基于php的緩存應(yīng)用方案性能分析與對(duì)比

ID:5362321

大?。?74.76 KB

頁(yè)數(shù):9頁(yè)

時(shí)間:2017-12-08

基于php的緩存應(yīng)用方案性能分析與對(duì)比_第1頁(yè)
基于php的緩存應(yīng)用方案性能分析與對(duì)比_第2頁(yè)
基于php的緩存應(yīng)用方案性能分析與對(duì)比_第3頁(yè)
基于php的緩存應(yīng)用方案性能分析與對(duì)比_第4頁(yè)
基于php的緩存應(yīng)用方案性能分析與對(duì)比_第5頁(yè)
資源描述:

《基于php的緩存應(yīng)用方案性能分析與對(duì)比》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、http://www.paper.edu.cn基于PHP的緩存應(yīng)用方案性能分析與對(duì)比吳明洲,孫文生北京郵電大學(xué)電信工程學(xué)院,北京(100876)E-mail:lyingkisser@gmail.com摘要:PHP是一種解釋型的腳本語(yǔ)言,主要用于WEB的服務(wù)端,在當(dāng)今LAMP平臺(tái)及類似平臺(tái)中具有十分重要的地位,其執(zhí)行效率直接關(guān)系到網(wǎng)站的響應(yīng)時(shí)間和用戶體驗(yàn),因此,采用一種合適的緩存應(yīng)用方案,對(duì)PHP執(zhí)行代碼或執(zhí)行過(guò)程中頻繁讀取的變量進(jìn)行緩存,是LAMP平臺(tái)優(yōu)化的關(guān)健環(huán)節(jié)。本文通過(guò)對(duì)四種主流PHP緩存應(yīng)用方案的性能分析和對(duì)比,給出一種最優(yōu)的P

2、HP緩存應(yīng)用方案。關(guān)鍵詞:LAMP,PHP,緩存,優(yōu)化1.引言近年來(lái),隨著互聯(lián)網(wǎng)的持續(xù)升溫和web2.0技術(shù)的不斷發(fā)展,各種基于PHP動(dòng)態(tài)腳本技術(shù)應(yīng)用的網(wǎng)站層出不窮,從大型的門戶網(wǎng)站,到各處各樣的論壇和博客系統(tǒng),再到引來(lái)無(wú)數(shù)關(guān)注的視頻分享網(wǎng)站,都大量架構(gòu)在LAMP平臺(tái),采用PHP作為其后臺(tái)的業(yè)務(wù)邏輯處理語(yǔ)言。但是,這些網(wǎng)站隨著訪問(wèn)量的快速上升,服務(wù)器的系統(tǒng)負(fù)載越來(lái)越重,訪問(wèn)速度變得越來(lái)越慢。因此,有些軟件開發(fā)工程師開始研究并著手開發(fā)PHP的緩存應(yīng)用系統(tǒng),即把編譯好的PHP代碼緩存進(jìn)內(nèi)存中,從而可以在下次訪問(wèn)時(shí),PHP腳本不需要重新編譯而

3、是從內(nèi)存中直接得到執(zhí)行,或者把需要反復(fù)存取的變量放在共享內(nèi)存中,可以大大加快網(wǎng)站的訪問(wèn)速度,減少系統(tǒng)的運(yùn)行負(fù)載。然而,由于LAMP架構(gòu)都是開源免費(fèi)的,這樣一來(lái),不管是PHP還是apache,他們不同版本所支持的特性就很可能發(fā)生不小的變化,由于PHP緩存器是直接依賴PHP而開發(fā)的,當(dāng)PHP的發(fā)行版本發(fā)生變化時(shí),過(guò)去老的PHP緩存器很可能無(wú)法和新的PHP版本兼容,這樣一來(lái),對(duì)于一個(gè)特定版本的PHP,選擇哪一種既穩(wěn)定也有著良[1]好性能表現(xiàn)的PHP緩存器,往往是一個(gè)難題。本文將在LAMP平臺(tái)上面,通過(guò)對(duì)eaccelerator,[2][3][

4、4]xcache,memcache,apc這四種主流PHP緩存應(yīng)用系統(tǒng)的性能測(cè)試和比較,給出一個(gè)在實(shí)際應(yīng)用環(huán)境下的最合理的解決方案。2.PHP緩存的基本概念[5]由于PHP的語(yǔ)言特性,由PHP編寫的腳本程序,客戶端請(qǐng)求一次,服務(wù)端調(diào)用PHP解析器執(zhí)行一次,所有的變量在當(dāng)前的腳本文件執(zhí)行完畢以后全部釋放,在下次裝載執(zhí)行時(shí)再重新建立。因此,在這個(gè)過(guò)程中,可以把需要執(zhí)行的腳本程序以某種形式預(yù)編譯進(jìn)內(nèi)存中,當(dāng)下次請(qǐng)求同一文件時(shí),直接使用緩沖區(qū)已編譯的代碼去執(zhí)行從而提高速度。這就是PHP二進(jìn)制代碼緩存(opcodecache)的概念。此外,某些需

5、要反復(fù)讀取的變量,比如,從數(shù)據(jù)庫(kù)檢索出瀏覽次數(shù)最多新聞在首頁(yè)面中顯示,傳統(tǒng)的做法是每請(qǐng)求一次首頁(yè)面,首頁(yè)面執(zhí)行一次數(shù)據(jù)庫(kù)操作,取出當(dāng)前瀏覽次數(shù)最多新聞,并在頁(yè)面中顯示出來(lái)。即頁(yè)面每被訪問(wèn)一次,相同的數(shù)據(jù)庫(kù)查詢就會(huì)執(zhí)行一次。這樣做,雖然可以實(shí)現(xiàn)實(shí)時(shí)性,但當(dāng)首頁(yè)訪問(wèn)量比較大時(shí),服務(wù)器的負(fù)載會(huì)非常嚴(yán)重。這時(shí),可以對(duì)這種變量進(jìn)行緩存,并設(shè)定一個(gè)緩存過(guò)期的期限,沒(méi)有超過(guò)這個(gè)期限時(shí),數(shù)據(jù)直接從緩存中讀取,超過(guò)這個(gè)期限時(shí),數(shù)據(jù)從數(shù)據(jù)庫(kù)中獲取,再重新寫入到緩存。這就是變量緩存的概念。-1-http://www.paper.edu.cn3.PHP緩存的主

6、要分類從上面的描述中可以看出,PHP緩存主要分為二進(jìn)制代碼緩存和變量緩存,二進(jìn)制代碼緩存,即opcodecache,是通過(guò)把解釋性的腳本語(yǔ)言預(yù)編譯為二進(jìn)制狀態(tài)并寫入內(nèi)存中,下次執(zhí)行時(shí)可略過(guò)編譯步驟,直接從內(nèi)存中執(zhí)行相關(guān)代碼,提高代碼自身的執(zhí)行效率。變量緩存則是把變量在一定期限內(nèi)緩存進(jìn)某種緩存介質(zhì)中去,這種緩存介質(zhì)可以是內(nèi)存,磁盤。當(dāng)前開源的提供二進(jìn)制預(yù)編譯緩存功能的緩存器有eaccelerator,xcache,apc。提供以內(nèi)存為緩存介質(zhì)的變量緩存的緩存器有eaccelerator、xcache、memcached、apc,這其中,同

7、時(shí)又支持分布式應(yīng)用緩存的,即可以把緩存介質(zhì)部署在支持物理分離的多臺(tái)服務(wù)器,只有memcached。下面就這幾種緩存器逐一進(jìn)行分析和對(duì)比。4.幾種主流開源PHP緩存的簡(jiǎn)要介紹4.1eaccelerator4.1.1基本介紹eaccelerator(以下簡(jiǎn)稱為eacc),是一個(gè)開源的opcode緩存器/優(yōu)化器,誕生于2004年12月。它是TurckMMCache項(xiàng)目的延伸,可以對(duì)整個(gè)頁(yè)面,或者一段執(zhí)行代碼,甚至只是一個(gè)變量進(jìn)行緩存。目前支持PHP4.X,PHP5.X,兼容ZendOptimizer,不支持分布式的內(nèi)容緩存。4.1.2安裝說(shuō)明

8、下載eaccelerator-0.9.5.1.tar.bz2#tar-zxvfeaccelerator-0.9.5.1.tar.bz2//解壓縮安裝包#cdeaccelerator-0.9.5.1//進(jìn)入安

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。