亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

PHP應用提速面面觀

2019-09-08 23:11:01
字體:
來源:轉載
供稿:網友
PHP最大的優點之一顯然在于它的速度快。一般情況下PHP總是具有足夠的速度支持Web內容動態生成,許多時候你甚至無法找出比它更快的方法。然而,當你不得不面對龐大的訪問量、高負荷的應用、有限的帶寬以及其他各種帶來性能瓶頸的因素時,你可能會問問自己是否可以做點什么讓網站運行得更好?;蛟S只要加上一個很不起眼的免費模塊,你的PHP應用性能以及Web服務器響應速度就會有顯著的改善。本文討論的就是如何進一步提高php應用的性能,給用戶以更美妙的瀏覽感受。本文分三個方面(代碼優化、緩存、內容壓縮)闡述提高PHP應用性能的各種技術,并介紹各個領域的知名產品。  

代碼優化  
首先我們來看看代碼優化。注意,這里的代碼優化可不是指把代碼寫得更加美觀漂亮,因為這恐怕已經是眾所周知沒有必要繼續討論了;另外,如果你已經考慮到了速度問題,很可能你早就對PHP的源代碼作了一些優化。不過,有些工具卻能夠自動地幫助我們完成這些繁雜的工作,如Zend Optimizer就是這樣一個工具。Zend Optimizer可以從Zend Technologies免費得到,但你必須同意它的許可約定,注意它不是以GPL方式發行。Zend Optimizer獲取由Zend Engine運行時編譯生成的中間代碼,并對它進行優化,從而使得中間代碼具有更快的執行效率。  

Zend Optimizer的安裝方法非常簡單,你只需下載為自己所用平臺提供的預編譯版本,把下面兩行代碼加入到php.ini,然后重新啟動Web服務器即可:  

zend_optimizer.optimization_level=15
zend_extension="/path/to/ZendOptimizer.so"
zend_loader.enable=Off  

這里額外增加的第三行代碼是可選的。禁止zend_loader似乎能夠讓Zend Optimizer的速度更快一點,所以在php.ini中加上這行代碼是值得的。注意:只有當你不使用Zend Encoder Runtime時,你才可以禁用zend_loader。  

緩存  
如果你想要讓自己龐大的PHP應用有更好的性能表現,采用緩存也是一種很好的方法?,F在已經有許多緩存方案可供選擇,其中包括:Zend Cache,APC,和Afterburner Cache。  

所有這些產品都屬于“緩存模塊”。當第一次出現對.php文件的請求時,它們會在Web服務器內存中保存PHP的中間代碼,此后就用“經過編譯”的版本響應后繼的請求。這種方法確實能夠改善應用的性能,因為它使得磁盤訪問量減低到了最少的程度(代碼已經讀取和解析),代碼直接在內存中運行使得服務器響應請求的速度大大提高。當然,緩存模塊還會監視PHP源文件的變化,必要時重新緩存頁面,從而防止了用戶得到的頁面仍舊由過時的PHP代碼生成。由于緩存模塊能夠明顯地降低服務器的負載、提高PHP應用的響應效率,因此它們非常適合于負載較大的網站使用。  

如何選擇這些緩存產品  
Zend Cache是Zend Technologies公司的商業軟件,而Zend Technologies就是前面提到的那個為我們提供PHP引擎和免費Zend Optimizer的公司。Zend Cache確實是名不虛傳!對于大型的PHP頁面,你可以感覺到第一次運行之后速度就會有所提高,而且服務器也會有更多的可用資源。遺憾的是這個產品并不免費,不過在有些情形下它仍舊是物超所值。  

Afterburner Cache是來自Bware Technologies的免費緩存模塊,當前這個產品還是Beta版。Afterburner Cache的做法看起來與Zend Cache差不多,但它對性能的改善程度(還)不能與Zend Cache相比,而且它還不能與Zend Optimizer一起工作。  

APC是Alternative PHP Cache的縮寫,它是來自Community Connect的又一個免費緩存模塊。這個產品已經具有足夠的穩定性供正式場合使用,而且它看起來也能在很大程度上提高響應請求的速度。  

內容壓縮  
前面我們討論了幾種提高PHP應用性能的方法,下面來看看使得瀏覽者感到網站速度太慢的另外一個重要因素:下載速度。如果PHP應用在內部Intranet上運行,而且每一臺客戶機都以100 MB/s的速度連接到服務器,那么下載速度應該不是什么問題。然而,如果服務器還要為慢騰騰的Modem用戶提供服務,那么值得考慮內容壓縮。大多數瀏覽器都根據IETF標準支持用gzip進行內容壓縮。這意味著你可以用gzip壓縮內容然而發送給瀏覽器,由瀏覽器解壓縮數據之后再顯示頁面,這整個過程對用戶來說完全透明。至于服務器端的內容壓縮,現在已經有許多不同的方法可供使用。  

例如,來自Remote Communications的免費Apache模塊mod_gzip就具有為支持這類內容編碼的瀏覽器壓縮靜態Web內容的能力。對于絕大多數靜態Web內容,mod_gzip都非常有效。mod_gzip可以方便地編譯到Apache里面,也可以作為DSO使用。據Remote communications公司說,mod_gzip也能夠壓縮來自mod_php、mod_perl等的動態內容。我試了一次又一次,但看來還是不行。我看了許多關于mod_gzip的論壇和文章,看來到了mod_gzip的下一個版本(可能是1.3.14.6f)這個問題有望得到解決。在此之前,我們可以在網站的靜態部分使用mod_gzip。  

然而有時我們確實需要壓縮動態內容,所以必須找找其他辦法。有一種辦法是使用class.gzip_encode.php,這是一個可以用來壓縮頁面內容的PHP類,具體方法是在PHP腳本的開頭和末尾調用該類的某些函數。如果要在網站級實現這個方案,可以從php.ini文件的auto_prepend以及auto_append指令調用這些函數。這種方法雖然有效,但它無疑為高負載的網站帶來了更多的開銷。關于如何使用這個類的詳細說明,請參見它的源代碼。它的源代碼說明相當完善,作者告訴了你所有你必須知道的事情。  

PHP 4.0.4有一個新的輸出緩存句柄ob_gzhandler,它與前面的類相似,但用法不同。使用ob_gzhandler時要在php.ini中加入的內容如下:  

output_handler = ob_gzhandler ;
 

這行代碼使得PHP激活輸出緩存,并壓縮它發送出去的所有內容。如果由于某種原因你不想在php.ini中加上這行代碼,你還可以通過PHP源文件所在目錄的.htaccess文件改變默認的服務器行為(不壓縮),語法如下:  

php_value output_handler ob_gzhandler
 

或者是從PHP代碼調用,如下所示:  

ob_start("ob_gzhandler");
 

采用輸出緩存句柄的方法確實非常有效,而且不會給服務器帶來什么特殊的負荷。但必須注意的是,Netscape Communicator對壓縮圖形的支持不佳,因此除非你能夠保證所有用戶都使用IE瀏覽器,否則你應該禁止壓縮JPEG和GIF圖形。一般地,對于所有其他文件,這種壓縮都有效,但建議你針對各種瀏覽器都分別進行測試,特別是當你使用了特殊的插件或者數據查看器時這一點尤其重要。  

使用前面介紹的各種技術,你能夠顯著地改善網站的性能表現,但應該注意的是:  
PHP可能是、也可能不是性能瓶頸所在。務必仔細地觀察每一個和應用性能有關的因素,比如數據庫等。  
單純使用本文技術只能在一定限度之內提高Web服務器的性能。因此在歸咎于PHP以及它的緩存之前,不妨看看是否應該升級服務器以及是否可以引入負載平衡技術(后者需要較大的投資)。  
不要低估內容壓縮的作用。雖然你在100 MB/s的LAN連接下看到Web應用響應非常迅速,但使用Modem連接的用戶不會,他們只會抱怨你那100 Kb的HTML頁面實在過于龐大。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产亚洲精品久久久久久牛牛| 欧美一区三区三区高中清蜜桃| 久久国产精品首页| 亚洲人成网站色ww在线| 欧美日韩国产中字| 亚洲人成电影网站色| 亚洲精品国精品久久99热一| 日韩视频免费在线观看| 国产精品极品美女粉嫩高清在线| 国产不卡精品视男人的天堂| 亚洲欧美一区二区精品久久久| 日本在线观看天堂男亚洲| 国产91色在线免费| 成人黄色大片在线免费观看| 中文字幕亚洲欧美在线| 日本a级片电影一区二区| 日韩极品精品视频免费观看| 国产成人综合亚洲| 久久久久国产视频| 狠狠躁夜夜躁人人爽天天天天97| 午夜美女久久久久爽久久| 国产欧美在线看| 亚洲理论电影网| 国产精品99蜜臀久久不卡二区| 日韩hd视频在线观看| 国产精品一区二区三区在线播放| 4p变态网欧美系列| 成人欧美在线观看| 久久97久久97精品免视看| 亚洲性视频网站| 日本免费久久高清视频| 久久久亚洲福利精品午夜| 久久精品国产一区| 欧美日产国产成人免费图片| 日本成人精品在线| 欧美日韩免费看| 欧美性猛交xxxx黑人猛交| 国产精品一区二区三区毛片淫片| 91精品免费视频| 久久精品免费播放| 成人国产在线视频| 成人深夜直播免费观看| 日韩精品高清在线观看| 国产精品www| 欧美大学生性色视频| 91久久精品国产91性色| 亚洲色图35p| 欧美午夜精品久久久久久久| 97色在线观看| 69**夜色精品国产69乱| 国产丝袜精品视频| 亚洲国产日韩一区| 欧洲美女7788成人免费视频| 久久免费视频这里只有精品| 欧美激情a在线| 岛国精品视频在线播放| 国产精品99久久99久久久二8| 国产精品香蕉在线观看| 福利二区91精品bt7086| 97视频人免费观看| 国产精欧美一区二区三区| 91大神福利视频在线| 日韩高清电影免费观看完整版| 亚洲在线视频福利| 最近2019年手机中文字幕| 国产在线一区二区三区| 九九热精品视频在线播放| 午夜剧场成人观在线视频免费观看| 78色国产精品| 热门国产精品亚洲第一区在线| 国内精品小视频| 成人网欧美在线视频| 69av在线播放| 国产精品久久久久久av| 久久久999国产精品| 欧美日韩电影在线观看| 欧美男插女视频| 亚洲女人天堂av| 国产精品久久久久久久久粉嫩av| 91精品国产自产在线老师啪| 国产精品v片在线观看不卡| 久久久久久成人精品| 亚洲国产成人精品久久久国产成人一区| 日韩欧美精品免费在线| 57pao成人国产永久免费| 亚洲精品一区中文字幕乱码| 国产aⅴ夜夜欢一区二区三区| 欧美三级欧美成人高清www| 亚洲欧美中文字幕| 亚洲黄色有码视频| 成人黄色短视频在线观看| 欧美大成色www永久网站婷| 亚洲欧美国产精品专区久久| www.国产一区| 成人免费淫片视频软件| 欧美又大又硬又粗bbbbb| 美日韩精品视频免费看| 欧美激情一区二区三区高清视频| 欧美一区二区三区免费视| 亚洲视频欧美视频| 亚洲精品国产拍免费91在线| 久99久在线视频| 综合激情国产一区| 日韩视频第一页| 亚洲少妇激情视频| 日韩av综合网| 一区二区三区高清国产| 久久久久久久亚洲精品| 欧美中文字幕在线播放| 久久精品国产视频| 日本精品免费一区二区三区| 亚洲国产精品久久久久| www.欧美精品一二三区| 18性欧美xxxⅹ性满足| 日韩成人激情视频| 久久久999国产精品| 久久国产精品99国产精| 精品一区精品二区| 国内外成人免费激情在线视频| 亚洲欧美激情精品一区二区| 亚洲国产精品国自产拍av秋霞| 国产精品扒开腿做| 国产婷婷97碰碰久久人人蜜臀| 亚洲精品日韩丝袜精品| 一区二区三区亚洲| 国产精品久久婷婷六月丁香| 3344国产精品免费看| 日韩小视频在线| 亚洲精品国产精品国自产在线| 欧美体内谢she精2性欧美| 久久香蕉精品香蕉| 国产精品吹潮在线观看| 久久成人精品视频| 啊v视频在线一区二区三区| 97碰在线观看| 国产精品高潮在线| 亚洲日本欧美日韩高观看| 亚洲视屏在线播放| 日韩美女主播视频| 亚洲欧美激情四射在线日| 青青草原成人在线视频| 亚洲天堂色网站| 久久视频国产精品免费视频在线| 国产精品福利片| 国产精品视频免费在线| 国产精品都在这里| 欧美人在线观看| 91精品国产综合久久香蕉922| 午夜精品一区二区三区在线视| 6080yy精品一区二区三区| 亚洲免费av网址| 亚洲影院色在线观看免费| 国产精品91视频| 高清欧美性猛交xxxx| 日韩电影在线观看免费| 久久久久久久久亚洲| 中文字幕精品—区二区| 国产精品91久久| 久久精品视频一| 国产精品一区二区久久| 国产福利精品av综合导导航| 91精品啪aⅴ在线观看国产| 亚洲午夜女主播在线直播| 亚洲韩国欧洲国产日产av|