要分析 PHP 程式的效能,花費時間或 CPU 的使用情況等等,可以使用 PHP APD(Advanced PHP debugger) 來快速達成。
註:此篇是於 Debian / Ubuntu Linux 安裝
PHP 效能分析工具 APD 安裝方式
PHP APD 安裝方式,理論上應該要很簡單,使用 pecl install apd 即可。
但是 APD 已經很長一段時間沒有維護了,所以 pecl install、download install 等等,都無法順利完成。(找了不少 patch 都無法正常 compile)
最後找到這個「ZeWaren/pecl-apd - PECL's PHP debugger and profiler, patched for PHP 5.5」,直接有 patch 完成的版本,就可以輕易使用。
PHP APD 安裝步驟
- 下述安裝步驟參考此篇:Setting up APD with PHP 5.6 (LAMP Stack) on Ubuntu Trusty
- sudo apt-get install php5-dev
- git clone https://github.com/ZeWaren/pecl-apd
- cd pecl-apd/
- phpize
- configure
- make
- sudo make install
Installing shared extensions: /usr/lib/php5/20131226/
- sudo chmod 644 /usr/lib/php5/20131226/apd.so
- sudo vim /etc/php5/mods-available/apd.ini # 寫入下述內容
; configuration for php APD module ; priority=10 zend_extension=apd.so apd.dumpdir =/tmp/apd/trace apd.statement_tracing=0
- mkdir -p /tmp/apd/trace # 將 log 寫到這邊
- sudo chmod -R 777 /tmp/apd/
- sudo php5enmod apd # 啟用 apd
- sudo service apache2 reload
在想要分析 profiling 的程式最前面加上下述即可:
<?php apd_set_pprof_trace(); // profiling code... ?>
操作方式可見此篇:PHP: How to use PHP-APD in your scripts
再來程式執行一次後,會產生 pprof.xxxxx.0,再使用 pprofp 來查看即可。
- pprofp -c /tmp/pprof.22141.0
- pprofp -R /tmp/pprof.22141.0
- pprofp -r /tmp/pprof.22141.0
- pprofp -u /tmp/pprof.22141.0