PHP中4個(gè)加速、緩存擴(kuò)展的區(qū)別和選用建議
折騰VPS的朋友,在安裝好LNMP等Web運(yùn)行環(huán)境后都會(huì)選擇一些緩存擴(kuò)展安裝以提高PHP運(yùn)行速度,常被人介紹的有eAccelerator、memcached、xcache、Alternative PHP Cache這幾個(gè)緩存擴(kuò)展,它們之間有什么區(qū)別?分別的作用又是什么?我們?nèi)绾芜x擇?這是本文給于大家的答案。
1、eAccelerator
eAccelerator是一個(gè)自由開(kāi)放源碼PHP加速器,優(yōu)化和動(dòng)態(tài)內(nèi)容緩存,提高了PHP腳本的緩存性能,使得PHP腳本在編譯的狀態(tài)下,對(duì)服務(wù)器的開(kāi)銷(xiāo)幾乎完全消除。 它還有對(duì)腳本起優(yōu)化作用,以加快其執(zhí)行效率。使PHP程序代碼執(zhí)效率能提高1-10倍。從文字上可以理解為:eAccelerator是PHP加速器擴(kuò)展。
2、memcached
Memcached 是一個(gè)高性能的分布式內(nèi)存對(duì)象緩存系統(tǒng),用于動(dòng)態(tài)Web應(yīng)用以減輕數(shù)據(jù)庫(kù)負(fù)載。它通過(guò)在內(nèi)存中緩存數(shù)據(jù)和對(duì)象來(lái)減少讀取數(shù)據(jù)庫(kù)的次數(shù),從而提供動(dòng)態(tài)、數(shù)據(jù)庫(kù)驅(qū)動(dòng)網(wǎng)站的速度。從文字上可以理解為:內(nèi)存緩存擴(kuò)展,并且針對(duì)于集群服務(wù)器使用較多,主要用于分布式緩存,算是數(shù)據(jù)庫(kù)緩存。
3、Alternative PHP Cache(APC緩存)
Alternative PHP Cache (APC緩存)是一種對(duì)PHP有效的開(kāi)放源高速緩沖儲(chǔ)存器工具,他能夠緩存Opcode(目標(biāo)文件)的PHP中間碼。 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;從文字上理到:Alternative PHP Cache(APC緩存)也算是一種內(nèi)存緩存擴(kuò)展,算是數(shù)據(jù)庫(kù)緩存擴(kuò)展。
4、Xcache
是一個(gè)開(kāi)源的opcode緩存器/優(yōu)化器, 他能夠提高服務(wù)器上的PHP性能,他通過(guò)把編譯PHP后的數(shù)據(jù)緩沖到共享內(nèi)存從而避免重復(fù)的編譯過(guò)程, 能夠直接使用緩沖區(qū)已編譯的代碼從而提高速度. 通常能夠提高您的頁(yè)面生成速率2到5倍, 降低服務(wù)器負(fù)載。 其實(shí)它與eAccelerator一樣是PHP加速器擴(kuò)展。
以上就是他們的作用與區(qū)別,簡(jiǎn)單一點(diǎn)就是:eAccelerator,xcache是PHP緩存擴(kuò)展,memcached、APC緩存是數(shù)據(jù)庫(kù)緩存擴(kuò)展,一般兩者只有要安裝其中一個(gè)即可,不要貪多。另外,實(shí)際測(cè)試中發(fā)現(xiàn)當(dāng)Cache數(shù)量超過(guò)一定閥值的時(shí)候,APC的性能不如Memcache。所以在擴(kuò)展的選擇上,本人一般會(huì)選擇xcache+memcached這個(gè)組合。
相關(guān)文章
redis+php實(shí)現(xiàn)微博(三)微博列表功能詳解
這篇文章主要介紹了redis+php實(shí)現(xiàn)微博列表功能,結(jié)合實(shí)例形式分析了php+redis獲取微博關(guān)注人列表及微博發(fā)布信息列表的相關(guān)操作技巧,需要的朋友可以參考下2019-09-09解決FastCGI 進(jìn)程超過(guò)了配置的活動(dòng)超時(shí)時(shí)限的問(wèn)題
本篇文章是對(duì)解決FastCGI 進(jìn)程超過(guò)了配置的活動(dòng)超時(shí)時(shí)限的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-07-07PHP中l(wèi)trim()函數(shù)的用法與實(shí)例講解
今天小編就為大家分享一篇關(guān)于PHP中l(wèi)trim()函數(shù)的用法與實(shí)例講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03PHP通過(guò)header實(shí)現(xiàn)文本文件下載的代碼
所謂實(shí)現(xiàn)文本文件的下載就是說(shuō)當(dāng)我們點(diǎn)擊一個(gè)文本文件的鏈接的時(shí)候不是打開(kāi)這個(gè)文件,而是彈出一個(gè)下載對(duì)話框讓我們下載2010-08-08在PHP中養(yǎng)成7個(gè)面向?qū)ο蟮暮昧?xí)慣
在 PHP 編程早期,PHP 代碼在本質(zhì)上是限于面向過(guò)程的。過(guò)程代碼 的特征在于使用過(guò)程構(gòu)建應(yīng)用程序塊。過(guò)程通過(guò)允許過(guò)程之間的調(diào)用提供某種程度的重用。2010-01-01php自定義函數(shù)轉(zhuǎn)換html標(biāo)簽示例
這篇文章主要介紹了php自定義函數(shù)轉(zhuǎn)換html標(biāo)簽的方法,結(jié)合實(shí)例形式分析了php針對(duì)字符串的編碼轉(zhuǎn)換與正則替換操作技巧,需要的朋友可以參考下2016-09-09PHP實(shí)現(xiàn)機(jī)器學(xué)習(xí)之樸素貝葉斯算法詳解
這篇文章主要介紹了PHP實(shí)現(xiàn)機(jī)器學(xué)習(xí)之樸素貝葉斯算法,結(jié)合實(shí)例形式詳細(xì)分析了樸素貝葉斯算法的概念、原理及php實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-12-12PHP mysql與mysqli事務(wù)使用說(shuō)明 分享
首先, mysqli 連接是永久連接,而mysql是非永久連接。什么意思呢? mysql連接每當(dāng)?shù)诙问褂玫臅r(shí)候,都會(huì)重新打開(kāi)一個(gè)新的進(jìn)程,而mysqli則只使用同一個(gè)進(jìn)程,這樣可以很大程度的減輕服務(wù)器端壓力2013-08-08