XDebug的性能分析功能會輸出一堆數據文件,這些文件若是手動查看,很難篩選出有用信息。html
而Webgrind則能夠解析XDebug數據,顯示在瀏覽器上。nginx
因此這兩個工具結合起來,能夠快捷的分析PHP程序。git
這一步相對簡單,請參考:XDebug安裝和配置教程。github
其中Profiler部分配置以下:web
xdebug.profiler_enable = 1 xdebug.profiler_enable_trigger = 1 xdebug.profiler_output_dir = "/tmp/xdebug" xdebug.profiler_output_name = "out.%t-%s"
新建一個目錄,做爲Webgrind的代碼目錄:瀏覽器
$ mkdir /home/www/webgrind
打開Nginx配置文件,添加一個站點,函數
server { listen 80; root /home/www/webgrind; server_name webgrind.dev.com; index index.php; access_log /var/log/nginx/webgrind.log; location / { index index.php; try_files $uri $uri/ /index.php?$args; } location ~ .*\.(php|php5)?$ { fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_index index.php; include fastcgi_params; client_max_body_size 30M; client_body_temp_path /data; } }
而後修改host文件,指向到 webgrind.dev.com
。php-fpm
Webgrind項目的地址爲:https://github.com/jokkedk/webgrind。工具
用git複製項目源碼:
cd /home/www/webgrind git clone https://github.com/jokkedk/webgrind.git ./
打開目錄下的config.php文件,兩個變量修改成以下值:
static $storageDir = '/tmp/xdebug'; static $profilerDir = '/tmp/xdebug';
這兩個配置和php.ini中的路徑一致。
重啓Nginx和PHP-FPM,
$ sudo service nginx restart $ sudo service php-fpm restart
訪問新配置的站點URL:webgrind.dev.com
能夠看到以下的圖形,便可分析出函數的耗時和調用關係。
要打開圖形調用關係,需先安裝
$ sudo yum install graphviz
而後點擊右上角的Show Call Graph,就能夠打開以下圖調用關係。