亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

使用XHProf分析PHP性能瓶頸的方法一

2020-03-22 19:02:24
字體:
來源:轉載
供稿:網友
安裝xhprof擴展
wget http://pecl.php.net/get/xhprof-0.9.4.tgztar zxf xhprof-0.9.4.tgzcd xhprof-0.9.4/extension/sudo phpize./configuresudo makesudo make installcd ../

配置php.ini

[xhprof]extension=xhprof.soxhprof.output_dir=/tmp
注:xhprof已經很久沒有更新過了,截至目前還不支持php7,php7可以使用 https://github.com/phacility/...。配置xhprof環境

需要把xhprof壓縮包里的兩個目錄復制到指定目錄(假設定義到 /work/xhprof/):

mkdir /work/xhprof/cp -a xhprof_html/ /work/xhprof/cp -a xhprof_lib/ /work/xhprof/

然后在項目框架的入口文件添加:

xhprof_enable(XHPROF_FLAGS_MEMORY | XHPROF_FLAGS_CPU);register_shutdown_function(function() { $xhprof_data = xhprof_disable(); if (function_exists( fastcgi_finish_request )){ fastcgi_finish_request(); include_once /work/xhprof/xhprof_lib/utils/xhprof_lib.php  include_once /work/xhprof/xhprof_lib/utils/xhprof_runs.php  $xhprof_runs = new XHProfRuns_Default(); $run_id = $xhprof_runs- save_run($xhprof_data, xhprof });

代碼解析:
$xhprof_data中記錄了程序運行過程中所有的函數調用時間及CPU內存消耗,具體記錄哪些指標可以通過xhprof_enable的參數控制,目前支持的參數有:

HPROF_FLAGS_NO_BUILTINS 跳過所有內置(內部)函數。

XHPROF_FLAGS_CPU 輸出的性能數據中添加 CPU 數據。

XHPROF_FLAGS_MEMORY 輸出的性能數據中添加內存數據。

之后的處理已經與xhprof擴展無關,大致是編寫一個存儲類XHProfRuns_Default,將$xhprof_data序列化并保存到某個目錄,可以通過XHProfRuns_Default(__DIR__)將結果輸出到當前目錄,如果不指定則會讀取php.ini配置文件中的xhprof.output_dir,仍然沒有指定則會輸出到/tmp。

xhprof_enable和xhprof_disable是成對出現的,一個是代碼運行最前面,一個是最后面。中間是要分析的代碼。

經過上面的配置后,我們后續請求項目的接口,xhprof就會分析請求過程中的CPU、內存、耗時等內容。日志保存在xhprof.output_dir目錄。

配置web

配置好了,怎么查看日志呢?我們可以搭建一個簡單的web server:

xhprof.test.com.conf

server { listen 80; server_name xhprof.test.com; root /work/xhprof/xhprof_html; index index.html index.php;
fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params;}

然后配置虛擬主機xhprof.test.com。重啟nginx,打開 xhprof.test.com就可以看到效果了:

默認的UI里列出了:

funciton name : 函數名

calls: 調用次數

Incl. Wall Time (microsec): 函數運行時間(包括子函數)

IWall%:函數運行時間(包括子函數)占比

Excl. Wall Time(microsec):函數運行時間(不包括子函數)

EWall%:函數運行時間(不包括子函數)

在web中還可以看到 [View Full Callgraph] 鏈接,點擊后可以繪制出一張可視化的性能分析圖,如果點擊后報錯的話,可能是缺少依賴graphviz。graphviz是一個繪制圖形的工具,可以更為直觀的讓你查看性能的瓶頸。如果需要可以安裝:

yum install -y libpngyum install -y graphviz

效果:
2522854532-5b27c405e2d35_articlex[1].png

非侵入式引入xhprof

前面我們是通過在項目入口文件添加代碼實現了分析的功能。更優雅的方式是新建一個額外的文件 xhprof.inc.php,保存在/work/xhprof/目錄下:

xhprof_enable(XHPROF_FLAGS_MEMORY | XHPROF_FLAGS_CPU);register_shutdown_function(function() { $xhprof_data = xhprof_disable(); if (function_exists( fastcgi_finish_request )){ fastcgi_finish_request(); include_once /work/xhprof/xhprof_lib/utils/xhprof_lib.php  include_once /work/xhprof/xhprof_lib/utils/xhprof_runs.php  $xhprof_runs = new XHProfRuns_Default(); $run_id = $xhprof_runs- save_run($xhprof_data, xhprof });

利用PHP的自動加載功能,在執行代碼前注入此文件,編輯php.ini:

auto_prepend_file = /work/xhprof/xhprof.inc.php

然后重啟PHP服務。這樣所有使用該php環境的都會生效。

或者寫到指定項目的nginx配置里也行:
jifen.cc.conf

location ~ /.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PHP_VALUE auto_prepend_file=/work/xhprof/xhprof.inc.php  include fastcgi_params; }

然后重啟nginx服務。這樣僅該項目生效。

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中日韩美女免费视频网站在线观看| 国产精品爽黄69天堂a| 国模极品一区二区三区| 国产亚洲精品91在线| 欧美大片在线看免费观看| 91视频国产一区| 中文字幕亚洲激情| 国产一区二区三区高清在线观看| 神马国产精品影院av| 欧美猛交免费看| 国产97在线观看| 国产精品一区二区三区久久久| 欧美日韩亚洲一区二| 亚洲精品www久久久久久广东| 丝袜一区二区三区| 日韩av综合网站| 精品国产乱码久久久久久婷婷| 欧美国产日韩免费| 国模视频一区二区| 国产精品视频自在线| 国产精品久久一| 色偷偷888欧美精品久久久| 欧美日韩日本国产| 欧美国产第二页| 久久久久久91香蕉国产| 亚洲欧洲日产国产网站| 国产精品美女www爽爽爽视频| 亚洲黄色av网站| 欧美激情久久久久| 日韩福利伦理影院免费| 国产精品一区久久久| 人九九综合九九宗合| 亚洲97在线观看| 欧美日韩中文字幕综合视频| 国产精品久久久久久久久借妻| 日韩精品在线电影| 欧美色道久久88综合亚洲精品| 18一19gay欧美视频网站| 日韩国产高清视频在线| 国产成人av在线播放| 日韩av中文字幕在线免费观看| 欧美日韩精品中文字幕| 国产综合久久久久| 亚洲色图欧美制服丝袜另类第一页| 97国产精品久久| 狠狠综合久久av一区二区小说| 日韩电影大片中文字幕| 中文字幕不卡av| 亚洲国产另类久久精品| 亚洲黄页视频免费观看| 国产日韩中文在线| 欧美激情视频网站| 国产精品久久久久久久久久免费| 久久久亚洲精品视频| 亚洲第一精品自拍| 欧美日韩在线视频观看| 亚洲精品wwww| 日韩精品在线视频美女| 国产视频综合在线| 欧美多人乱p欧美4p久久| 欧美xxxx做受欧美.88| 57pao成人永久免费视频| 日本中文字幕不卡免费| 午夜欧美不卡精品aaaaa| 91精品国产综合久久香蕉| 久久久久久综合网天天| 亚洲自拍偷拍色图| 亚洲天堂成人在线| 国产欧美一区二区三区四区| 亚洲欧美日韩中文在线| 亚洲国产欧美一区二区三区同亚洲| 欧美老女人性视频| 国产精品久久av| 久久久精品国产亚洲| 国产精品日韩欧美综合| 91九色国产社区在线观看| 成人性生交大片免费观看嘿嘿视频| 精品一区二区三区四区在线| 亚洲一区二区精品| 91理论片午午论夜理片久久| 亚洲国产成人精品久久久国产成人一区| 久久精品国产视频| 91精品国产综合久久香蕉最新版| 欧美黄色三级网站| 国产成人亚洲综合青青| 欧美在线视频一二三| 久久久电影免费观看完整版| 欧美一级黑人aaaaaaa做受| 国产精品一区二区久久久久| 成人黄色av网| 国产精品xxxxx| 国产成人精品在线| 久久全球大尺度高清视频| 国产一区二区三区精品久久久| 国产日韩换脸av一区在线观看| 亚洲人精品午夜在线观看| 国产精品视频男人的天堂| 久久天天躁狠狠躁夜夜av| 上原亚衣av一区二区三区| 欧美国产日韩一区二区在线观看| 亚洲网在线观看| 国产精品久久网| 国产suv精品一区二区| 欧美日韩一区二区免费在线观看| 日韩av资源在线播放| 国产午夜精品美女视频明星a级| 97免费在线视频| 久久精品久久久久| 欧美成人性生活| 欧美日韩色婷婷| 成人在线视频福利| 91久久在线播放| 亚洲精品国产精品久久清纯直播| 日韩人体视频一二区| 亚洲精品资源在线| 久久成人亚洲精品| 国外成人免费在线播放| 日韩av网址在线| 国产精品直播网红| 成人欧美一区二区三区在线湿哒哒| 97在线视频免费播放| 亚洲男人的天堂网站| 国产91精品久久久久久久| 国产精品免费久久久久影院| 亚洲一区二区中文字幕| 97免费视频在线| 中文字幕亚洲图片| 日本中文字幕久久看| 久久天堂av综合合色| 国产99久久精品一区二区永久免费| 尤物yw午夜国产精品视频明星| 97成人在线视频| 美女福利精品视频| 亚洲美女又黄又爽在线观看| 中文日韩在线观看| 91在线观看免费观看| 国产精品美女999| 97香蕉超级碰碰久久免费的优势| 日韩美女毛茸茸| 国产精品久久久久久久久免费看| 成人精品久久一区二区三区| 久久这里只有精品视频首页| 精品视频在线播放色网色视频| 亚洲天堂一区二区三区| 色婷婷综合久久久久| 亚洲美女www午夜| 国产丝袜一区二区三区免费视频| 成人激情视频在线| 国产成人精品电影| 久久久国产精品视频| 97在线视频免费看| 国产精品色婷婷视频| 亚洲精品大尺度| 青青久久aⅴ北条麻妃| 久久久久久久久久亚洲| 日韩中文在线中文网在线观看| 色综久久综合桃花网| 日本视频久久久| 精品偷拍各种wc美女嘘嘘| 欧美日韩在线观看视频小说| 亚洲色图色老头| 国产精品影片在线观看| 国产成人+综合亚洲+天堂| 欧美专区国产专区|