有時候,網頁都可以正常執行,但就是慢的想讓人吐血。
這時候就可以用 Xdebug 配合 KCachegrind 來看看,到底是慢在那裡。
首先,要裝好 Xdebug ,並且在 php.ini 中,設定啟用。
1. 安裝 Xdebug
# tar zxvf xdebug-2.0.2.gz # cd xdebug-2.0.2 # ./configure --enable-xdebug --with-php-config=/home/php/bin/php-config # make # make install
2. 在 Ubuntu 下安裝 KCachegrind
# sudo apt-get install KCachegrind
3. 在 php.ini 中設定啟用
[xdebug] zend_extension="/home/php/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so" xdebug.profiler_enable=off xdebug.profiler_enable=on xdebug.trace_output_dir="/tmp/xdebug" xdebug.profiler_output_dir="/tmp/xdebug"
4. 接著只要執行網頁就會在 /tmp/xdebug 下產生 cachegrind.out.xxxxx
注意:要測試時,要請其它人都不要執行,某則很難知道那個cachegrind.out 檔是你要的。
5. 接著把 cachegrind.out 檔抓回來,使用 KCachegrind 來查看結果。
載入 cachegrind.out.xxxxx
就可以看到如下圖般詳細的資訊,由其是 Call Graph 的資訊,真是超詳細的。
PS. 記得上線後要把 php.ini 裡的 Xdebug Mark 起來,不然上線會變很慢。
以上,簡單記錄一下。