亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

PHP的優(yōu)化,緩沖,壓縮實際的解決方案

瀏覽:2日期:2024-02-24 10:14:32

本文提出了實用的PHP的優(yōu)化,緩沖,壓縮實際的解決方案。

作為流行的 Web 編程語言, PHP 的最大優(yōu)勢就是速度。 PHP4 已經(jīng)在這方面做的非常好了,你幾乎找不到比它更快的腳本編程語言了。但是如果你的應(yīng)用負(fù)荷很大,而帶寬又比較小,或者有其他的瓶頸影響你的服務(wù)器性能,那么,你不妨試試筆者為你開出的幾個藥方,看看是否靈驗。

一、代碼優(yōu)化

一談到代碼優(yōu)化,或許你想到的就是整齊明了的代碼,但是本文的意思卻不是在此,因為如果要尋求速度的話,就要對PHP 源碼作相應(yīng)的調(diào)整。一般說來就是去掉多余的注釋,讓代碼不可讀。但是這對于一個具有良好素養(yǎng)的程序員來說,簡直就是不可思議的。好在Zend Technologies 公司發(fā)布了 Zend 優(yōu)化引擎可以幫助你做到這一點。它現(xiàn)在是免費的,但是你必須遵循 Zend Optimizer 許可。這個產(chǎn)品可以對引擎產(chǎn)生的中間代碼進(jìn)行優(yōu)化。

安裝這個引擎比較簡單,下載對應(yīng)平臺的版本以后,解開壓縮文件,然后在 php.ini 文件里面加上下面兩行,重新啟動 Web 服務(wù)器,就搞定了。

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

如果是 Win32 平臺的話就應(yīng)該是:

zend_optimizer.optimization_level=15zend_extension_ts='C:path endOptimizer.dll'zend_loader.enable=Off

啊!沒有搞錯吧?怎么是三行?其實第三行是可選的。因為看起來把 zend_loader 關(guān)掉能提高一點速度,因此值得把這第三行放到 php.ini 。需要注意的是,關(guān)掉的前提條件是你沒有在使用 Zend 加密程序。

二、緩沖

如果想要更進(jìn)一步提升速度,我們就需要考慮采用緩沖技術(shù)了。有一些可選的解決方案,包括 Zend Cache (測試版本), APC, 以及 Afterburner Cache,另外還有 jpCache 等。

以上這些都是屬于緩沖模塊,他們把第一次對.php 文件請求產(chǎn)生的中間代碼存儲在 Web 服務(wù)器的內(nèi)存中,然后對以后的請求返回“編譯好”的版本。因為這樣減少了磁盤讀寫,而且都在內(nèi)存工作,所以這個過程能顯著提升應(yīng)用性能,

現(xiàn)成的這類產(chǎn)品比較多,到底選擇誰呢?

Zend Cache 是一款不錯的商業(yè)產(chǎn)品,在第一次加載那些很大的 PHP 頁面后,你會明顯感受到速度的提升,服務(wù)器會留出更多的資源。可惜這個產(chǎn)品是要花銀子的,但是在有些情形下,你可不要吝嗇這些銀子。

Afterburner Cache 是 Bware Technologies 的產(chǎn)品,目前還處于 Beta 版本,看起來似乎和 Zend Cashe 一樣,但是它不能達(dá)到 Zend Cache 那樣好的效果,也不能和 Zend 優(yōu)化引擎一起工作,但是它是免費的,所以我采用了這個模塊。

APC (Alternative PHP Cache) 是 Community Connect 發(fā)布的又一個免費模塊,看起來似乎可以用于生產(chǎn)環(huán)境了。

三、Web 內(nèi)容壓縮

對于日益擁擠的網(wǎng)絡(luò)來說,節(jié)約帶寬就像節(jié)約用水一樣是十分值得提倡的。根據(jù)IETF 標(biāo)準(zhǔn),大多數(shù)瀏覽器應(yīng)該支持使用 gzip 壓縮的內(nèi)容。也就是說你可以把用 gzip 壓縮的內(nèi)容發(fā)送給瀏覽器,瀏覽器會透明的解壓數(shù)據(jù)。

mod_gzip 是 Remote Communications 公司推出的免費 Apache 模塊,能把靜態(tài)的Web 內(nèi)容壓縮后發(fā)送給瀏覽器。對于大多數(shù)靜態(tài)網(wǎng)頁來說,這個模塊十分合適。盡管

Remotecommunications 公司的人說這個模塊支持所有那些 mod_php, mod_perl,mod 什么產(chǎn)生的動態(tài)內(nèi)容,但是看起來還是不能工作,從 mod_gzip 的郵件列表來看,這個問題估計要到1.3.14.6f 才能解決。

如果要壓縮動態(tài)內(nèi)容的話,我們可以采用class.gzip_encode.php,一個在腳本開始和結(jié)束時使用的 PHP 類。對整個網(wǎng)站來說就是在 php.ini 的 auto_prepend 和 auto_append 中調(diào)用其中的函數(shù)。詳細(xì)你可以閱讀這個類的程序,這個程序注釋得很好,作者幾乎把什么都告訴你了。不過使用之前,你的 PHP 要編譯為支持 zlib。

對于 PHP 4.0.4 來說,一個新的解決方案就是使用 ob_gzhandler,能達(dá)到和上面的類一樣的效果,只要簡單的在 php.ini 加入下面這句話就可以了:

output_handler = ob_gzhandler ;

這能讓 PHP 激活輸出緩沖,并壓縮所有輸出。如果有什么特殊的理由不想讓所有的內(nèi)容都壓縮輸出的話,可以采用在 .htaccess 文件中加入下面的行,對對應(yīng)目錄下的文件進(jìn)行壓縮。

php_value output_handler ob_gzhandler

也可以直接在 PHP 代碼中加入:

ob_start('ob_gzhandler');

這項壓縮技術(shù)十分有效,但是對 Netscape Communicator 用戶來說,因為不能壓縮圖形文件,所以看上去沒有完姆⑺停虼吮匭牘乇斬?jpeg 和 gif 文件的壓縮,IE 沒有這個問題。

結(jié)論:

采用本文所討論的技術(shù)應(yīng)該能改善你的網(wǎng)站性能,但是需要注意的是:

- PHP 可能不是導(dǎo)致瓶頸的原因,仔細(xì)檢查其他原因(例如:數(shù)據(jù)庫)

- 你不可能把服務(wù)器性能調(diào)節(jié)到最高狀態(tài)。因此在埋怨 PHP 及其緩沖之前,考慮是否該升級服務(wù)器了,或者采用動態(tài)負(fù)載平衡技術(shù)(那可是一大筆銀子哦)。

- 不要低估內(nèi)容壓縮,在你 100 Mb 的內(nèi)部網(wǎng)上面看到 PHP 應(yīng)用的速度提升時,不要忘記使用調(diào)制解調(diào)器的用戶在哪里埋怨你的 100Kb 的 HTML 頁面。

標(biāo)簽: PHP
相關(guān)文章:
主站蜘蛛池模板: 日本成人一区二区三区 | 久久精品99成人中文字幕880 | 9久久免费国产精品特黄 | a4yy欧美一区二区三区 | 免费碰碰碰视频在线看 | 91极品视频| 免费在线a| 91短视频版高清在线观看免费 | 亚洲人成人网毛片在线播放 | 国产玖玖玖精品视频 | 特级黄国产片一级视频播放 | 欧美精品一区二区在线观看 | 日韩一级在线观看 | 国产成人精品曰本亚洲77美色 | 一级黄色播放 | 91热视频在线观看 | 亚洲综合精品香蕉久久网97 | 三级国产在线观看 | 一级毛片中国 | 狠狠色丁婷婷综合久久 | 国产无人区一区二区三区 | 欧美成人亚洲综合精品欧美激情 | 亚洲播播播| 亚洲天堂777 | 国产uv1区二区三区 国产va免费精品观看 | 娇小性色xxxxx中文 | 国产成人一区二区三区 | 97色片| 全黄a免费一级毛片人人爱 全黄一级裸片视频在线观看 | 91日本| 亚洲国产剧情在线精品视 | 国产最新自拍视频 | 国产91中文剧情在线观看 | 老司机成人福利视频在线观看免费 | 福利社区在线观看 | 久久99国产精品久久99软件 | 99久久精品费精品国产一区二区 | 亚洲色播永久网址大全 | 国产又色又爽在线观看 | 国产免费久久精品99久久 | 2020年国产精品午夜福利在线观看 |