xhprof--php代碼性能追蹤及分析

xhprof是什么

XHProf是facebook 開發(fā)的一個測試php性能的擴展垫释,本文記錄了在PHP應(yīng)用中使用XHProf對PHP進行性能優(yōu)化潘拨,查找性能瓶頸的方法。

安裝Xhprof擴展

$ wget http://pecl.php.net/get/xhprof-0.9.4.tgz
$ tar -zxvf xhprof-0.9.4.tgz 
$ cd xhprof-0.9.4
$ cd extension/
$ phpize
$ ./configure
$ make
$ sudo make install

修改php.ini

[xhprof]
extension=xhprof.so
xhprof.output_dir=/tmp

配置中xhprof.output_dir指定了生成的profile文件存儲的位置饶号,我們將其指定為/tmp铁追。

參數(shù)

void xhprof_enable ([ int $flags = 0 [, array $options ]] )

  • flags 該參數(shù)用于為剖析結(jié)果添加額外的信息,該參數(shù)的值使用以下宏茫船,如果需要提供多個值琅束,使用|進行分隔。
    XHPROFFLAGSNO_BUILTINS 跳過所有的內(nèi)置函數(shù)
    XHPROFFLAGSCPU 添加對CPU使用的分析
    XHPROFFLAGSMEMORY 添加對內(nèi)存使用的分析
  • options 數(shù)組形式提供可選參數(shù)算谈,在此處提供ignored_functions選項需要忽略的函數(shù)

安裝graphviz工具

sudo apt-get install graphviz

如何使用

假設(shè)你現(xiàn)在要看看看自己做的一個網(wǎng)站的首頁性能數(shù)據(jù)涩禀,那么你要找到這個網(wǎng)站的首頁入口文件,在核心文件加載之前和之后分別加上xhprof的性能測試代碼

#開啟然眼,具體參數(shù)說明可以查看官方文檔
xhprof_enable(XHPROF_FLAGS_NO_BUILTINS | XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY);

#核心文件的執(zhí)行
...
require 'index.php'
...

#關(guān)閉
$xhprof_data = xhprof_disable();

#這里的路徑根據(jù)自己的站點來配置
$XHPROF_ROOT = realpath(dirname(__FILE__) .'/');
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php";
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php";

$xhprof_runs = new XHProfRuns_Default();
$xhprof_runs->save_run($xhprof_data, "xhprof");

如何查看結(jié)果

  • 把 xhprof-0.9.4 的可以通過瀏覽器訪問艾船,訪問里面的xhprof_html/index.php 就會看到id列表,點擊查看對應(yīng)的id查看結(jié)果
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末高每,一起剝皮案震驚了整個濱河市屿岂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鲸匿,老刑警劉巖爷怀,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異带欢,居然都是意外死亡运授,警方通過查閱死者的電腦和手機烤惊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吁朦,“玉大人柒室,你說我怎么就攤上這事《阂耍” “怎么了伦泥?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長锦溪。 經(jīng)常有香客問我,道長府怯,這世上最難降的妖魔是什么刻诊? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮牺丙,結(jié)果婚禮上则涯,老公的妹妹穿的比我還像新娘。我一直安慰自己冲簿,他們只是感情好粟判,可當(dāng)我...
    茶點故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著峦剔,像睡著了一般档礁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上吝沫,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天呻澜,我揣著相機與錄音,去河邊找鬼惨险。 笑死羹幸,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的辫愉。 我是一名探鬼主播栅受,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼恭朗!你這毒婦竟也來了屏镊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤痰腮,失蹤者是張志新(化名)和其女友劉穎闸衫,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體诽嘉,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡蔚出,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年弟翘,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片骄酗。...
    茶點故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡稀余,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出趋翻,到底是詐尸還是另有隱情睛琳,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布踏烙,位于F島的核電站师骗,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏讨惩。R本人自食惡果不足惜辟癌,卻給世界環(huán)境...
    茶點故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望荐捻。 院中可真熱鬧黍少,春花似錦、人聲如沸处面。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽魂角。三九已至昵济,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間野揪,已是汗流浹背砸紊。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留囱挑,地道東北人醉顽。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像平挑,于是被迫代替她去往敵國和親游添。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,870評論 2 361

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理通熄,服務(wù)發(fā)現(xiàn)唆涝,斷路器,智...
    卡卡羅2017閱讀 134,716評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,327評論 25 707
  • Welcome 目前網(wǎng)絡(luò)上充斥著大量的陳舊信息唇辨,讓PHP新手誤入歧途廊酣,傳播著錯誤的實踐和糟糕的代碼,這必須得到糾正...
    layjoy閱讀 21,685評論 7 118
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數(shù)據(jù)革命閱讀 12,176評論 2 33
  • 我始終相信赏枚,在這個世界上亡驰,一定有另一個自己晓猛,在做著我不敢做的事,在過著我想過的生活凡辱。 ...
    劉若晴不愛喝水閱讀 780評論 4 1