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

PHP 應用效能優化系列(一):用 OPcache / XCache 加速操作碼執行

     編輯:PHP 綜合知識

為什麼需要操作碼快取

PHP 每次請求都要:讀取腳本 → 詞法分析 → 語法分析 → 編譯為操作碼 → 執行。對相同程式碼重複編譯浪費 CPU。操作碼快取將編譯結果存共享記憶體,下次直接執行,大幅降低延遲與 CPU 使用率。

主流操作碼快取比較

快取器授權特色PHP 版本支援
OPcachePHP 內建官方維護、JIT 整合、生產首選5.5+
APCu開源使用者快取(非操作碼),搭配 OPcache5.4+
XCache開源早期流行、涵蓋操作碼+變數快取5.1-7.x
Zend OpCache商業Zend Server 套件,含監控工具5.4+
⚡ 現代 PHP (7.4+) 強烈建議直接使用內建 OPcache,無需額外安裝。

OPcache 生產環境推薦設定 (php.ini)

zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=20000
opcache.validate_timestamps=0          ; 生產環境關閉,部署後需重啟 PHP-FPM 或發送 SIGUSR2
opcache.revalidate_freq=0
opcache.fast_shutdown=1
opcache.enable_file_override=1
opcache.jit_buffer_size=128M           ; PHP 8.0+ 啟用 JIT
opcache.jit=tracing

XCache 安裝步驟(歷史參考)

若維護舊專案仍需 XCache:

  1. 增加共享記憶體上限(/etc/sysctl.conf)
  2. phpize → ./configure --enable-xcache --enable-xcache-coverager → make && make install
  3. php.ini 載入 xcache.so 並設定 xcache.size、xcache.var_size

驗證快取生效

觀察 opcache_enabled、cached_scripts、memory_usage、hit_rate(命中率應 > 90%)。

部署流程最佳實踐

  • 程式碼部署後,重啟 PHP-FPM 或 kill -USR2 $(cat /run/php-fpm.pid) 清除快取
  • 使用不可變部署(新版本新目錄 + 原子切換 symlink)避免部分檔案新舊混雜
  • CI/CD 管線整合 opcache_reset() 或重啟步驟
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved