如何加速你的PHP程序

我一直認爲PHP的運行速度是非常的理想的,尤其是Zend引擎的加速之後。但是PHP仍然有加速的可能,你知道嗎?

所有的一切都始于如何優化PHP的編譯

嘗試使用針對CPU型號的特殊編譯參數 -msse -mmmx -mfpmath=sse

在編譯的時候添加 -03參數

編譯的時候調節CPU的參數 -march -mcpu Use Caution

盡量只編譯你需要的模塊,避免無用的擴展加載

對于很少使用的擴展模塊,應該編譯成共享模式,便于在運行的時候動態加載

也許有些時候 --disable-all 會是你的好朋友

把PHP靜態編譯到Apache可以提速20%

# PHP

./configure --with-apache=/path/to/apache_source

# Apache

./configure --activate-module=src/modules/php4/libphp4.a

優化你的PHP配置文件

確認你的 register_globals 配置爲disabled

禁用 magic_quotes_* 選項

關閉 expose_php

關閉 register_argc_argv

除非絕對需要不要啓用 always_populate_raw_post_data

Apache服務器的優化配置

MaxSpareServers 使用高配置

MaxClients 設置爲你的服務器可以承受的2/5

MaxRequestsPerChild 理想情況是0 (不限),但是實際上都設置爲一個較的一個值

優化文件訪問

DirectoryIndex 文件列表盡可能簡短

無論如何禁止 .htaccess 文件的 AllowOverride none

使用 FollowSymLinks 簡化文件訪問處理

避免使用 mod_rewrite 或者更複雜的操作

如果日志非必須的話就禁用

如果必須使用日志,那麽請記錄到一個文件中去,並且在分析過後清除

消除昂貴的系統呼叫

不要開啓 ExtendedStatus

在允許和禁止規則的時候使用IP而不要使用域名

不要啓用 HostnameLookups

保持 ServerSignature 關閉

設置 KeepAlive 爲較小的一個值

動態和靜態的內容分離

提高硬盤性能參數

使用 output_buffering 優化PHP到Apache的交互

增加Apache的 SendBufferSize 大小

提高緩存執行

使用PHP代碼緩存機制

Turck MMCache 停止開發

APC 較慢,優化不夠

Zend Cache 優化性能好,但付費

ionCube PHP Accelerator 免費但不開源

如果可以使用Zlib壓縮

減少輸出數據

用CSS替換HTML

壓縮HTML頁面

使用Sessions管理

優化你的SQL指令

原文引自:http://talks.php.net/show/acc_php/

· 把年齡相仿的獅虎熊放一起,誰更厲害?結果出人意料

很多人都想知道獅子、老虎和熊打起來誰最厲害,于是便有好事之人把這三種動物關在一起...

· 湖北宜昌三峽壩區水面驚現神秘動物

近日,湖北宜昌,一段視頻在當地熱傳:有網友在三峽壩區拍到神秘動物,體型碩大數米長...

· 什麽是語段?語段的類型以及和句群、段落的區別與聯系是什麽?

句群是最高級的語言單位。 段落(自然段)是章法單位...

 
PHP程序加速探索之緩存輸出
  內容緩存輸出 PEAR cache   接下來我們開始探索更常用的緩存技術,這也是本文的重點部份。首先我們使用PEAR中的cache包。PEAR可以將內容緩存于文件,數據庫或者內存中,我們以文件爲例。  下面是一個沒有使用...查看完整版>>PHP程序加速探索之緩存輸出
 
PHP程序加速探索[8]--內容緩存輸出 PEAR cache
◆ 內容緩存輸出 PEAR cache接下來我們開始探索更常用的緩存技術,這也是本文的重點部份。首先我們使用PEAR中的cache包。PEAR可以將內容緩存于文件,數據庫或者內存中,我們以文件爲例。下面是一個沒有使用緩存的PHP...查看完整版>>PHP程序加速探索[8]--內容緩存輸出 PEAR cache
 
用PEAR來寫你的PHP程序
如前所述,PEAR按照一定的分類來管理PEAR應用代碼庫,你的PEAR代碼可以組織到其中適當的目錄中,其他的人可以方便地檢索並分享到你的成果。 PEAR不僅僅是一個代碼倉庫,它同時也是一個標准,使用這個標准來書寫你的P...查看完整版>>用PEAR來寫你的PHP程序
 
如何將你的AutoCAD繪圖加速
  隨著CAD、CAM在工業生産上應用,對一個工程人員來說不會AutoCAD是不行的,但即使會了速度不快在實際應用中也是不行的。那如何提高速度呢?本人以自己的學習實踐來簡單談談提高速度的幾種方法。  一、熟悉對CAD...查看完整版>>如何將你的AutoCAD繪圖加速
 
如何文檔化你的PHP類
你已經閱讀過關于:面向對象編程可以幫助你管理你的大型web項目,並且你已經開始使用PHP來進行面向對象編程了嗎?如果你已經編寫了幾個類應用在網站上並且你是一個有條理的人的話,那麽你應該已經編寫了關于它們的一...查看完整版>>如何文檔化你的PHP類