首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 效能優化完整指南:php.ini 設定、程式碼層面 50+ 條最佳實務

     編輯:PHP 綜合知識

PHP 效能優化分為環境配置與程式碼撰寫兩大面向。以下整理 php.ini 關鍵參數與 50+ 條程式碼層面優化建議。

一、php.ini 關鍵參數調整

參數建議值說明
disable_functionsphpinfo,exec,system,popen,shell_exec,proc_open,...禁用高風險函數,降低被攻擊風險
max_execution_time30 (視需求調整)防止腳本無限執行佔用資源
memory_limit128M (視記憶體調整)限制單腳本記憶體上限
register_globalsOff安全性關鍵,嚴禁開啟
upload_max_filesize10M (視需求)上傳檔案大小限制
session.save_path/dev/shm (Linux)Session 存放記憶體檔案系統,極大提升 I/O
opcache.enable1啟用 OPcache,避免重複編譯
opcache.memory_consumption128OPcache 共享記憶體大小 (MB)
opcache.max_accelerated_files10000最大快取檔案數
realpath_cache_size4096k路徑解析快取,減少 stat 系統調用

二、程式碼層面 50+ 條優化精選

  1. 單引號字串:無變數解析,比雙引號快。
  2. 靜態方法:無需實例化,百萬次調用快 3 倍。
  3. $arr['key'] 加引號:比 $arr[key] 快 7 倍。
  4. echo 多參數:echo $a, $b 比串接快。
  5. 循環前預計算:$len=count($arr); for(...)。
  6. unset() 大變數:釋放記憶體,降峰值。
  7. 避免魔術方法:__get/__set/__autoload 額外開銷大。
  8. 少用 require_once:改用自動載入器 + 佈署優化。
  9. include 絕對路徑:避免遍歷 include_path。
  10. $_SERVER['REQUEST_TIME']:免呼叫 time()。
  11. 字串函數優於正則:strpos/str_replace/strtr。
  12. strtr 單字元轉換最快:strtr($s, 'ab', 'cd')。
  13. 先 strpos 判斷再替換:無需替換時快 200%。
  14. 參數用字串而非陣列:減少建構開銷。
  15. 避免 @:錯誤抑制極慢,改用 error_reporting 區塊。
  16. switch-case 優於多重 if-else。
  17. 啟用 mod_deflate/mod_gzip:傳輸量降 80%。
  18. 資料庫連線用完即關:避免長連線耗盡。
  19. IP 存整數 ip2long():省空間、利索引。
  20. checkdnsrr() 驗證 Email 域名。
  21. 用 mysqli/PDO:mysql_* 已移除。
  22. 三元運算子:簡潔略快。
  23. 關閉 display_errors:生產環境防洩漏。
  24. 大字串 gzcompress() 存 DB:壓縮 90%。
  25. 參考傳遞 &$var 多返回值。
  26. 深度理解 SQL Injection 防禦。
  27. isset($str{5}) 替代 strlen():語言結構無函數呼叫。
  28. ++$i 優於 $i++:少一 opcode。
  29. 避免變數複製:echo $_POST['x'] 而非 $x=$_POST['x']; echo $x。
  30. file_get_contents() 替代 fopen 系列。
  31. 減少檔案 I/O。
  32. 優化 SQL:少 Insert/Update、善用索引。
  33. 盡量用內建函數:比用戶函數快 10 倍。
  34. 循環內勿宣告大變數。
  35. 多維陣列避免巢狀賦值。
  36. foreach 優於 for/while。
  37. i += 1 優於 i = i + 1。
  38. 用完全域變數 unset()。
  39. 非必要不 OOP:方法/物件開銷大。
  40. 方法切分適度:過度封裝增加呼叫開銷。
  41. 極度耗時功能考慮 C 擴展。
  42. 開啟 OPcache:效能提升 25-100%。
  43. split() 已棄用,用 explode() 或 preg_split()。

三、進階工具

  • Xdebug/Blackfire Profiler:定位熱點函數、記憶體分配、SQL 查詢耗時。
  • OPcache 狀態監控:命中率、快取滿度、重啟頻率。
  • 慢查詢日誌:MySQL slow_query_log、PHP slowlog (FPM)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved