<ul id="g60s4"><pre id="g60s4"></pre></ul>
<strong id="g60s4"><nav id="g60s4"></nav></strong>
<ul id="g60s4"></ul>
  • <tr id="g60s4"></tr>
  • 
    
  • 或者

    怎樣提高php運行速度

    作者:小仙女 瀏覽:234 發布時間:2017-12-28
    分享 評論 0

    使用PHP的最大1個優勢就是速度快。一般情況下,PHP總是具有足夠的速度支持Web內容動態生成,許多時候甚至無法找出比它更快的方法。然而,當面對龐大的訪問量、高負荷的應用、有限的帶寬,以及其他各種帶來性能瓶頸的因素時,就需要考慮怎樣提高PHP的性能了。


    1、代碼優化


    代碼優化不僅僅是寫出干凈和清晰的代碼,而是對代碼進行一定的簡化。可以使用Zend Optimizer來自動幫助完成這些繁雜的工作。它的原理很簡單,即通過檢測Zend引擎產生的中間代碼,并對它進行優化,從而獲得更高的執行速度。


    在使用了Zend Optimizer后,復雜的PHP源程序的執行效率馬上會得到顯著提高,缺點是優化后的代碼可讀性下降,給代碼修改帶來困難。


    Zend Optimizer的安裝方法非常簡單,只要根據用戶使用的平臺,下載相關的預編譯版本,把下面2行代碼加入到php.ini文件中,重新啟動Web 服務器就行了:


    zend_optimizer.optimization_level=15


    zend_extension=″/path/to/ZendOptimizer.so″


    zend_loader.enable=Off


    額外增加的第三行代碼是可選的,因為禁用zend_loader將會使優化速度更快。需要注意的是,只有在不使用Zend Encoder Runtime的時候,才可以禁用zend_loader。


    2、使用緩存


    如果PHP程序的規模很大,那么提高速度的辦法就是使用緩存。現在已經有許多緩存方案可供選擇,其中包括Zend Cache、APC和Afterburner Cache。


    上面這幾種都是“緩存模塊”(caching modules)。第一次調用PHP文件時,緩存模塊從PHP源代碼生成一些中間代碼,并把這些中間代碼存儲在Web服務器的內存中。以后再調用這些文件時,就可以直接使用內存中“編譯”過的代碼。這種方法確實能夠改善應用的性能,因為它使得磁盤訪問量減低到了最少的程度(代碼已經讀取和解析),代碼直接在內存中運行,使得服務器響應請求的速度大大提高。


    當然,緩存模塊還會監視PHP源文件的變化,必要時會重新緩存頁面,從而防止用戶得到的頁面仍舊由過時的PHP代碼生成。由于緩存模塊能夠明顯地降低服務器的負載,提高PHP應用的響應效率,因此它們非常適合于負載較大的網站使用。


    Zend Cache是Zend Technologies公司開發的商業軟件。在第一次運行后,PHP頁面的運行速度立刻會有很大的提高,服務器的空閑資源也更多了。缺點是它不是免費的,但性價比還是很高的。


    Afterburner Cache是Bware Technologies公司開發的免費緩存模塊。功能與Zend Cache基本一樣,但提高性能方面比不上Zend Cache。


    APC(Alternative PHP Cache)是由Community Connect公司開發的另一種免費緩存模塊,目前版本是2.0.4,可以從http://pecl.php.net/package/APC獲得。對于產品應用來說,它的性能很穩定,而且也能在很大程度上提高響應請求的速度。


    3、壓縮網頁內容


    影響站點的訪問速度還有1個重要因素,那就是下載速度。解決的辦法就是壓縮網頁內容。對于純文本內容而言,HTTP壓縮技術可壓縮至原大小的40%以下,從而提供60%以上的數據傳輸節約。雖然Web服務器會因為壓縮導致CPU占用的略微上升,但可以節約大量用于傳輸的網絡IO。


    根據IETF規范,大部分瀏覽器都支持使用gzip壓縮算法進行內容壓縮。也就是說,可以先用gzip壓縮網頁內容,然后發送到客戶端瀏覽器,瀏覽器在接收的時候會自動解壓數據,再顯示頁面。這個過程對用戶來說,是完全透明的。同樣,壓縮Web頁面的內容也有不同的方法。


    Mod_gzip是1種開放源代碼的、標準的Apache模塊,也叫互聯網內容加速模塊。可以將它和Apache一起編譯,也可以作為DSO使用。相對于普通的瀏覽過程,它可以節省40%左右的流量。Mod_gzip不僅可以壓縮靜態的內容,如HTML、XML,而且對動態生成的,包括SQL、Java、WML、VRML等產生的內容,在服務器端進行實時壓縮并傳輸,其壓縮效率驚人,一般都為60%~85%。


    壓縮動態網頁的內容,還可以使用class.gzip來對.php文件編碼,class.gzip通過在PHP腳本的開頭和結尾調用它的一些函數來壓縮網頁內容。如果整個站點都需要這樣的壓縮,可以在php.ini文件中的auto_prepend和auto_append中調用這些函數,但是會占用一定的系統開銷。


    PHP4.0.4推出了1種新的輸出緩沖的處理手段—ob_gzhandler,它的作用和class.gzip完全一樣,區別是可以直接把它加到php.ini 文件中,語法如下:


    output_handler = ob_gzhandler;


    這樣將激活PHP的輸出緩沖功能,并在發送內容前進行壓縮。如果不想在這里設置,只在需要的地方才改變這個默認設置(不壓縮),只要在需要壓縮的PHP源程序目錄中,修改一下.htaccess文件就行了,語法如下:


    php_value output_handler ob_gzhandler


    或者直接在PHP代碼中調用它:


    ob_start("ob_gzhandler");


    輸出緩沖的效果確實很理想,并且不會為服務器帶來額外的系統開銷。要注意的一點是Netscape Communicator不支持圖像的壓縮。因此除非知道訪問者都使用Internet Explorer,否則必須禁止壓縮jpeg和gif圖象。


    4 其它技巧


    在編程時,使用一些小技巧也可以加快PHP的運行速度:


    (1)用i+=1代替i=i+1,既符合c/c++的習慣,效率相對還更高。


    (2)盡可能使用PHP內部函數。


    (3)能使用單引號字符串時,盡量使用單引號字符串。單引號字符串的效率要高于雙引號字符串。


    (4)用foreach代替while遍歷數組,foreach的效率明顯高于while循環,而且不需要調用reset函數。


    日韩高清av在线| 国产欧美精品123区发布| 99精品国产99久久久久久97| 日韩免费高清一级毛片在线| 国产精品无码专区在线播放| 免费精品国产日韩热久久| 久久国产精品无码HDAV| 久久精品国产福利电影网| 最新国产在线精品观看| 久久久久久久亚洲精品| 精品国产午夜肉伦伦影院| www.99精品视频在线播放| 全国精品一区二区在线观看| 日韩在线看片中文字幕不卡| 中文字幕日韩一区二区三区不卡| 日韩一区二区三区视频久久| 国产午夜福利久久精品| 国产精品一区二区资源| 国产精品自拍亚洲| 国产精品国产三级国产av剧情| 日韩在线视精品在亚洲| 国产精品酒店视频| 国产精品美女久久久浪潮av| 成人国产精品2021| 精品伊人久久大线蕉地址| 精品久久中文字幕有码| 国产精品伦理一二三区伦理| 国产精品美女久久久久久久| 国产精品成人网站| 日韩熟女精品一区二区三区| 日韩成人在线网站| 日韩午夜视频在线观看| 日韩在线视频观看| 手机日韩精品视频在线看网站| 亚洲精品人成无码中文毛片| 精品国产一区二区三区2021| 久久激情亚洲精品无码?V| 亚洲精品无码专区久久久| 国产精品涩涩涩视频网站| 久久精品国产亚洲AV果冻传媒| 亚洲国产综合精品中文第一区|