我一直認爲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類
PHP程序加速探索 (一)簡介 本文嘗試對PHP程序加速的各個方面進行探索,包括必要性以及從不同角度采取的具體措施。希望有助于讀者了解PHP程序加速,並應用于實際。 (二)是否需要加速? 這個問題聽起來有點愚蠢。...查看完整版>>
PHP程序加速探索
PHP程序加速探索之服務器負載測試 服務器負載太大而影響程序效率也是很常見的,我們需要對此進行測試。這裏我以目前最常用的Apache服務器爲例。 Apache服務器自帶有一個叫AB(ApacheBench)的工具,在bin目錄下。使用這個輕巧的工具我們可以對服...查看完整版>>
PHP程序加速探索之服務器負載測試
PHP程序加速探索之壓縮輸出gzip 利用Apache中的mod_gzip模塊,我們可以利用gzip的壓縮算法來對Apache服務器發布的網頁內容進行壓縮後再傳輸到客戶端的浏覽器。如果是純文本的內容,效果非常明顯,大約可以壓縮到原來的30%-40%,使用戶的浏覽速度...查看完整版>>
PHP程序加速探索之壓縮輸出gzip
PHP程序加速探索之代碼優化 掌握了PEAR::BenchMark,現在你已經知道如何測試你的代碼,知道如何判斷你的代碼是快是慢,是哪一部份比較慢。那麽接下來我要說的就是如何消滅或優化那部份慢的代碼。 這一點上我個人最主要的經驗只有兩點,...查看完整版>>
PHP程序加速探索之代碼優化