PHP是一種HTML內嵌式的在香港服務器服務( http://www.49028c.com/hkzy)或香港服務器托管( http://www.49028c.com/hktg)端執行的腳本語言,所以大部分PHP開發出來的Web應用,初始的開發模板就是混合層的數據編程。雖然通過MVC設計模式可以把程序應用邏輯與網頁呈現邏輯強制性分離,但也只是將應用程序的輸入、處理和輸出分開,網頁呈現邏輯(視圖)還會有HTML代碼和PHP程序強耦合在一起。
PHP引擎作為流行的 Web 編程語言, PHP 的最大優勢就是速度。 PHP4 已在這方面做的很好了,您幾乎很難找到比他更快的腳本編程語言了。但是假如您的應用負荷很大,而帶寬又比較小,或有其他的瓶頸影響您的香港服務器服務或香港服務器托管性能,讓您的PHP引擎全速運轉的三個簡單絕招。
一、香港服務器服務或香港服務器托管代碼優化
一談到代碼優化,或許您想到的就是整齊明了的代碼,但是本文的意思卻不是在此,因為假如要尋求速度的話,就要對PHP 源碼作相應的調整。一般說來就是去掉多余的注釋,讓代碼不可讀。但是這對于一個具備良好素養的程式員來說,簡直就是不可思議的。好在Zend Technologies 公司發布了 Zend 優化引擎能夠幫助您做到這一點。他現在是免費的,但是您必須遵循 Zend Optimizer 許可。這個產品能夠對引擎產生的中間代碼進行優化。
安裝這個引擎比較簡單,下載對應平臺的版本以后,解開壓縮文檔,然后在 php.ini 文檔里面加上下面兩行,重新啟動 Web 服務器,就搞定了。
以下為引用的內容:
zend_optimizer.optimization_level=15
zend_extension="/path/to/ZendOptimizer.so"
zend_loader.enable=Off
假如是 Win32 平臺的話就應該是:
zend_optimizer.optimization_level=15
zend_extension_ts="C://path//to//ZendOptimizer.dll"
zend_loader.enable=Off
需要注意的是,關掉的前提條件是您沒有在使用 Zend 加密程式。
二、香港服務器服務或香港服務器托管Web 內容壓縮
對于日益擁擠的網絡來說,節約帶寬就像節約用水相同是十分值得提倡的。根據IETF 標準,大多數瀏覽器應該支持使用 gzip 壓縮的內容。也就是說您能夠把用 gzip 壓縮的內容發送給瀏覽器,瀏覽器會透明的解壓數據。
mod_gzip 是 Remote Communications 公司推出的免費 Apache 模塊,能把靜態的Web 內容壓縮后發送給瀏覽器。對于大多數靜態網頁來說,這個模塊十分合適。盡管
Remotecommunications 公司的人說這個模塊支持任何那些 mod_php, mod_perl,mod 什么產生的動態內容,但是看起來還是不能工作,從 mod_gzip 的郵件列表來看,這個問題估計要到1.3.14.6f 才能解決。
假如要壓縮動態內容的話,我們能夠采用class.gzip_encode.php,一個在腳本開始和結束時使用的 PHP 類。對整個網站來說就是在 php.ini 的 auto_prepend 和 auto_append 中調用其中的函數。周詳您能夠閱讀這個類的程式,這個程式注釋得很好,作者幾乎把什么都告訴您了。但是使用之前,您的 PHP 要編譯為支持 zlib。
對于 PHP 4.0.4 來說,一個新的解決方案就是使用 ob_gzhandler,能達到和上面的類相同的效果,只要簡單的在 php.ini 加入下面這句話就能夠了:
output_handler = ob_gzhandler ;
這能讓 PHP 激活輸出緩沖,并壓縮任何輸出。假如有什么特別的理由不想讓任何的內容都壓縮輸出的話,能夠采用在 .htaccess 文檔中加入下面的行,對對應目錄下的文檔進行壓縮。
php_value output_handler ob_gzhandler
也能夠直接在 PHP 代碼中加入:
ob_start("ob_gzhandler");
這項壓縮技術十分有效,但是對 Netscape Communicator 用戶來說,因為不能壓縮圖像文檔,所以看上去沒有完整的發送,因此必須關閉對 jpeg 和 gif 文檔的壓縮,IE 沒有這個問題。
三、香港服務器服務或香港服務器托管管緩沖
假如想要更進一步提升速度,我們就需要考慮采用緩沖技術了。有一些可選的解決方案,包括 Zend Cache (測試版本), APC, 連同 Afterburner Cache,另外更有 jpCache 等。
以上這些都是屬于緩沖模塊,他們把第一次對 .php 文檔請求產生的中間代碼存儲在 Web 服務器的內存中,然后對以后的請求返回“編譯好”的版本。因為這樣減少了磁盤讀寫,而且都在內存工作,所以這個過程能顯著提升應用性能,
現成的這類產品比較多,到底選擇誰呢?
Zend Cache 是一款不錯的商業產品,在第一次加載那些很大的 PHP 頁面后,您會明顯感受到速度的提升,服務器會留出更多的資源。可惜這個產品是要花銀子的,但是在有些情形下,您可不要吝嗇這些銀子。
Afterburner Cache 是 Bware Technologies 的產品,現在還處于 Beta 版本,看起來似乎和 Zend Cashe 相同,但是他不能達到 Zend Cache 那樣好的效果,也不能和 Zend 優化引擎一起工作,但是他是免費的,所以我采用了這個模塊。
APC (Alternative PHP Cache) 是 Community Connect 發布的又一個免費模塊,看起來似乎能夠用于生產環境了。
總之,香港服務器服務或香港服務器托管PHP引擎全速運轉方案好用但是需要注意的是:
1. 不要低估內容壓縮,在您 100 Mb 的內部網上面看到 PHP 應用的速度提升時,不要忘記使用調制解調器的用戶在哪里埋怨您的 100Kb 的 HTML 頁面。
2.PHP 可能不是導致瓶頸的原因,仔細檢查其他原因(例如:數據庫)
3. 您不可能把服務器性能調節到最高狀態。因此在埋怨 PHP 及其緩沖之前,考慮是否該升級服務器了,或采用動態負載平衡技術。