我們可以使用基準測試工具,例如Apache Bench和Siege找出性能問題.從中可以看出性能問題.如果性能問題不是特別明顯,就要使用分析器
分析器
xdebug 是一個流行的php分析工具,不過這個分析器只應該在開發(fā)環(huán)境中使用,因為它會消耗大量系統(tǒng)資源.之后通過webgrind顯示分析結果
XHProf.這個工具在開發(fā)環(huán)境和生成環(huán)境都能使用,分析結果的展示也需要使用SHGUI這個工具
Xdebug
使用它分析應用的調用堆桟,能輕易找出瓶頸和性能問題
它是php的一個擴展,安裝 pecl? install? xdebug 引入到php.ini中
xdebug.profiler_enable = 0? 0:xdebug不自動運行.
xdebug.profiler_enable_trigger = 1?? 我們可以子啊php應用的任何一個url中加XDEBUG_PROFILE=1查詢參數(shù),在單個請求中啟動xdebug.進行分析保存到xdebug.profiler_output_dir中
xdebug.profiler_output_dir = /data/appLog/xdebug 報告保存路徑(需要提前創(chuàng)建好)
生成的報告類似于這個cachegrind.out.20654
然后安裝查看報告的工具webgrind.下載好之后進行nginx配置
git clone https://github.com/jokkedk/webgrind.git
瀏覽器打開對應的webgrind地址,然后選擇你要看的文件
第一項參數(shù)意思是把所有被調用函數(shù)/方法首先做一個排序匆赃,由高到低顯示。然后取出前N個,使他們耗時比率之和在90-100%之間。
第二個就是選擇profile文件。默認是分析最新一次的xdebug記錄蜕依。
第三個選項是顯示百分比/毫秒/微秒。
下面的彩色進度條一樣的東東是耗時量比較條。藍代表php內置函數(shù)皂吮,灰色代表requir/onclude,綠代表類方法税手,橙黃代表類其他過程函數(shù) (用戶自定義函數(shù))
Invocation Count 被調用執(zhí)行的次數(shù)
Total Self Cost - 函數(shù)自身開銷耗時? 毫秒/ 微秒 /百分比(并不包含調用其他函數(shù))
Total Inclusive Cost - 綜合耗時蜂筹。包括自身耗時和調用所有的其他函數(shù)的耗時
Called From?? 調用者
Count? 調用次數(shù)
Total Call Cost?? 總共耗時
參考
Modern PHP