成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

站長資訊網
最全最豐富的資訊網站

php7如何使用xhprof測試php性能?(方法介紹)

php7如何使用xhprof測試php性能?(方法介紹)

介紹

1 背景

  • PHP的xhprof擴展Facebook不再進行更新和維護,因為Faceboo已經全面使用HHVM,不再使用PHP zend引擎。

  • xhprof不支持新版本的PHP(PHP7),tideways擴展是從xhprof項目fork下來繼續進行維護的,目前支持PHP 7.2, 7.1, 7.0, 5.6 and 5.5 。

  • tideways是開源項目,它收費的只是UI服務,其實 xhgui完全可以滿足我們日常的需求

2 功能

  tideways是用來測試PHP性能的擴展,它能獲取PHP執行的整個過程中調用的函數、調用函數次數、執行時間、CPU時間、內存占用、內存峰值、總執行時間、總CPU時間、總內存占用、總內存峰值等數據,通過以上數據進行分析,找出PHP的性能瓶頸、分析PHP執行過程等。

3 優點

  • tideways是一個PHP擴展,結合xhgui,無需在PHP代碼中進行埋點來監控代碼

  • 可以設置執行頻率(例如1/100),無需每個請求都生成執行日志,從而導致性能損失;也可以主動控制是否生成執行日志,通過請求參數來控制(debug=1)

  • 有簡單直接的UI對數據進行轉化

  • 可以自由的搭配條件進行數據篩選,例如分析某個特定的接口,分析某個時間段的接口請求情況等

4 缺點

  雖然是非侵入式的,但是如果對每個接口生成執行日志,那么對CPU和內存的消耗是不可忽略的。

5 實現原理

  • tideways擴展負責生成運行日志
  • nginx中通過配置fastcgi_param PHP_VALUE auto_prepend_file,在請求開始之前執行auto_prepend_file配置的PHP文件,文件中利用register_shutdown_function方法,在PHP進程結束的時候調用tideways_disable來實現tideways的嵌入,然后將執行日志存入mongodb或者mysql或者文件中,通過xhgui分析之后進行展示,展示形式包括柱狀圖、瀑布流、火焰圖。

應用

接下來介紹兩種應用方式:侵入式非侵入式

侵入式指的是在代碼中添加代碼,侵入式使用的是默認的ui;

非侵入式指的是在不對代碼做任何改動,通過改動nginx/apache實現代碼注入,非侵入式使用的是xhgui;

安裝 tideways_xhprof

git clone "https://github.com/tideways/php-xhprof-extension.git" cd php-xhprof-extension phpize ./configure --with-php-config=/usr/local/php7/bin/php-config make sudo make install

在php.ini中加上 extension=tideways_xhprof.so

非侵入式:

<?php tideways_xhprof_enable();  // your application code  $data = tideways_xhprof_disable(); file_put_contents(     sys_get_temp_dir() . "/" . uniqid() . ".yourapp.xhprof",     serialize($data) );    // $data = tideways_xhprof_disable();   // file_put_contents(   //     sys_get_temp_dir() . "/" . date('His', time()) . ".material.xhprof",   //     serialize($data)   // );

這里生成的 .xhprof文件在 tmp 目錄下,默認UI也會去tmp目錄下查找 .xhprof文件

安裝默認UI用來查找數據

git clone git@github.com:phacility/xhprof.git

將此存儲庫中的xhprof_libxhprof_html目錄安裝到您的Web文件夾中,并導航xhprof_html/index.php 以查看跟蹤列表。

如果想要看函數調用筆記需要安裝Callgraph

安裝 Callgraph

Callgraph 實際由三個工具組合而成。

一個是用于生成 C 函數調用樹的 cflow 或者 calltree,下文主要介紹 cflow。

一個處理 dot 文本圖形語言的工具,由 graphviz 提升。

一個用于把 C 函數調用樹轉換為 dot 格式的腳本:tree2dotx

以 Ubuntu 為例,分別安裝它們:

sudo apt-get install cflow graphviz

接下來安裝 tree2dotx 和 Callgraph,這里都默認安裝到 /usr/local/bin。

wget -c https://github.com/tinyclub/linux-0.11-lab/raw/master/tools/tree2dotx wget -c https://github.com/tinyclub/linux-0.11-lab/raw/master/tools/callgraph sudo cp tree2dotx callgraph /usr/local/bin sudo chmod +x /usr/local/bin/{tree2dotx,callgraph}

接下來展示兩張效果圖:

php7如何使用xhprof測試php性能?(方法介紹) php7如何使用xhprof測試php性能?(方法介紹)

侵入式:

  侵入式使用的 xhgui 需要用到 mongodb

安裝xhgui

git clone git@github.com:perftools/xhgui.git

配置Nginx

server {   listen 80;   server_name site.localhost;   root /Users/markstory/Sites/awesome-thing/app/webroot/;   fastcgi_param PHP_VALUE "auto_prepend_file=/home/www/xhgui/external/header.php";  #這里依據個人目錄而配 }

這里的意思是在執行項目php代碼前 先執行 header.php,從而達到非侵入式檢測性能的目的

xhgui配置(生成日志的頻率)

在xhgui的config/config.default.php中,可設置采樣命中次數;

return rand(1, 100) === 42; 為1%的采樣率,改成return True;則標識每次都采樣

'profiler.enable' => function() {    // url 中包含debug=1則百分百捕獲    if(!empty($_GET['debug'])){        return True;    }else{        // 1%采樣        return rand(1, 100) === 42;    } }

mongodb的配置

   xhgui/config/config.default.php

// Can be either mongodb or file.    /*    'save.handler' => 'file',    'save.handler.filename' => dirname(__DIR__) . '/cache/' . 'xhgui.data.' . microtime(true) . '_' . substr(md5($url), 0, 6),    */    'save.handler' => 'mongodb',    // Needed for file save handler. Beware of file locking. You can adujst this file path    // to reduce locking problems (eg uniqid, time ...)    //'save.handler.filename' => __DIR__.'/../data/xhgui_'.date('Ymd').'.dat',    'db.host' => 'mongodb://127.0.0.1:27017',    'db.db' => 'xhprof',

mongo服務器的配置

mongo  > use xhprof  > db.results.ensureIndex( { 'meta.SERVER.REQUEST_TIME' : -1 } )  > db.results.ensureIndex( { 'profile.main().wt' : -1 } )  > db.results.ensureIndex( { 'profile.main().mu' : -1 } )  > db.results.ensureIndex( { 'profile.main().cpu' : -1 } )  > db.results.ensureIndex( { 'meta.url' : 1 } )

最后展示幾張xhgui的效果圖

php7如何使用xhprof測試php性能?(方法介紹)

php7如何使用xhprof測試php性能?(方法介紹)

php7如何使用xhprof測試php性能?(方法介紹)

相關學習推薦:PHP編程從入門到精通

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
欧美交换配乱婬粗大| 精品亚洲卡一卡2卡三卡乱码| 国产成人AV三级在线观看| 国产精品99久久99久久久动漫| 国产精品一区在线观看你懂的| 黄 色 网 站 免 费 涩涩屋| 久久天堂综合亚洲伊人HD妓女| 奶大灬舒服灬太大了一进一出| 全棵女性艺术写真| 婷婷97狠狠色综合| 亚洲精品性爱av| 在线无码免费网站永久| 把腿扒开让我舔免费视频| 国产黑色丝袜在线视频| 精品久久久久久国产牛牛| 免费人妻AV无码专区| 日产精品乱码卡一卡2卡三网站 | 黑色丝袜老师自慰喷水浪潮免费| 久久人人做人人妻人人玩精品VA| 欧美性猛尖ⅩⅩⅩⅩ乱大交| 特大巨黑吊XXXX高潮| 亚洲精品乱码久久久久久不卡 | 野花韩国高清免费神马| 97人人澡人人爽人人模亚洲| 丰满人妻妓熟妇又伦精品软件| 狠狠色综合TV久久久久久| 欧精国精产品一区| 玩弄老太婆BBW视频| 夜夜春夜夜爽一区二区三区| 办公室撕开奶罩揉吮奶漫画| 国产精品久久久久久久久久久不卡| 久久精品国产亚洲AV日韩| 人妻av一区二区三区| 亚洲2022国产成人精品无码区| 在线A级毛片无码免费真人| 粗长巨龙挤进新婚少妇| 九月在线 视频 在线观看| 人妻护士在线波多野结衣| 亚洲AV永久精品无码| FREESEX欧美喷水| 国产一区二区三区久久精品| 你下水好多下水道BD| 无码熟妇人妻AV在线电影| 中文字幕亚洲综合久久蜜桃| 国产成人无码精品一区在线观看| 久久久久蜜桃精品成人片| 日韩人妻无码精品专区90618| 亚洲精品国产V片在线观看| 爱丫爱丫影院在线看免费| 狠狠久久精品中文字幕无码| 人妻精品久久久久中文字幕一冢本| 亚洲AV鲁丝片在线观看| GOGO大胆啪啪艺术| 极品丰满熟妇人妻无码| 日本丰满人妻熟妇BBBBB③B| 亚洲熟妇无码久久精品导航| 大白屁股白浆XXⅩSS| 久久精品成人亚洲另类欧美| 色吊丝AV中文字幕| 在厨房我撕开岳的丁字裤| 国产后入又长又硬| 欧美精品V国产精品V日韩精品| 亚洲AⅤ精品无码一区二区| YSL千人千色T9T9T9最新| 精品人成视频免费国产| 少妇人妻偷人精品无码视频| 中文字幕日产无线码一区| 国产新婚夫妇叫床声不断| 人妻AV无码专区| 一区二区三区在线 | 欧洲| 国产精品夜间视频香蕉| 欧美熟妇搡BBBB搡BBBB| 亚洲色偷无码一区二区| 国产精品网站在线观看免费传媒 | 国产成人久久AV免费高潮| 欧美 狠狠操 888| 亚洲欧美日本韩国| 国产精品未满十八禁止观看| 强行暴力肉体进入HDⅩXXX| 夜夜躁狠狠躁日日躁2002| 国产午夜片无码区在线观看| 日本熟妇人妻XXXXX视频| 中文日本字幕MV在现线观看| 极品少妇高潮到爽| 污的你下面一直滴水的句子| YOUJIZZCOM中国熟妇| 两根大肉大捧一进一出好爽视频 | XXXXFREE少妇过瘾| 老少配XXOO老少配| 亚洲国产精品成人精品无码区| 国产爆乳无码一区二区麻豆| 人人妻人人澡人人爽超污| 2021自拍偷在线精品自拍偷| 久久久久久久久蜜桃| 亚洲丰满熟妇浓毛大隂户| 国产精产国品一二三产区区别| 日本MACBOOKPRO高清| 99RE久久精品国产| 麻豆国产成人AV| 亚洲一区二区无码偷拍| 狠狠噜狠狠狠狠丁香五月| 无码吃奶揉捏奶头高潮视频| 纯爱无遮挡H肉动漫在线播放| 欧美日韩精品视频一区二区三区| 中国少妇内射XXXXX-百度| 久久精品夜色噜噜亚洲A∨| 亚洲风情亚Aⅴ在线发布| 国产人成高清在线视频99最全资 | 久久人妻无码中文字幕| 亚洲女人人体ASS| 饥渴少妇AV无码影片| 亚洲AV成人一区二区三区| 国产毛多水多五月激情四射| 无码精品人妻一区二区三区中| 公翁大龟挺进秀婷全文免费阅读| 日本中文字幕一区二区高清在线| 凹凸国产熟女精品视频| 欧洲精品VA无码一区二区三区| 97香蕉超级碰碰碰久久兔费| 年轻 娇小 亚洲人 日本语 夹| 中文字幕久精品免费视频| 鲁死你AV资源站| 中文字幕乱码无码人妻系列蜜桃| 麻豆传煤入口免费进入2023| 真人新婚之夜破苞第一次视频| 黎朔缠着腰不让他退出微博| 中文无码伦AV中文字幕在线| 免费网站看V片在线18禁| 99精品又大又爽又粗少妇毛片| 女人夜夜春高潮爽A∨片| GOGO全球高清专业大尺度摄影| 秋霞A级毛片在线看| 波多野结衣办公室激情30分钟| 日产精品99久久久久久| 国产AV国片精品一区二区| 调教小SAO货撅起打屁股作文| 国产精品成人一区无码| 亚洲AV成人片无码色欲AV自慰| 国色天香A区与B区| 亚洲精品久久久久久中文字幕| 精品无码一区二区三区电影| 夜夜揉揉日日人人| 年轻的嫂嫂2在线播放在线播放 | 成人综合色在线一区二区| 四虎影视永久无码精品| 国产精品午夜福利不卡| 亚洲成AV人片在线观看无| 久久久国产精品ⅤA麻豆| 中文字幕在线亚洲日韩6页| 欧美人与动牲猛交XXXXBBB| 成熟丰满熟妇AV无码| 无码精品黑人一区二区三区| 狠狠色丁香久久婷婷综合_中| 亚洲线精品一区二区三区影音先锋| 麻豆三级电影无码| 锕锕锕锕锕锕好痛WWW在线观看| 色噜噜亚洲精品中文字幕| 国产嫖妓一区二区三区无码| 亚洲区激情区无码区| 免费无码又爽又刺激激情视频软件 | 欧美日韩成人在线观看| 干了老婆闺蜜两个小时| 亚洲AV无码专区亚洲AV伊甸园| 烂货我捏烂你的奶| XXXX另类黑人| 无码人妻丰满熟妇啪啪网站| 精品午夜福利在线观看| 97久久香蕉国产线看观看| 色综合AV男人的天堂伊人| 韩国无码无遮挡在线观看不卡| 曰批全过程免费视频观看| 日本在线观看母与子| 国内精品久久人妻互换| 中国XMXM18小孩的推荐机制| 日韩一区二区三区人妻系列| 果冻传媒董小宛一区二区| 中文字幕日本六区小电影| 射精专区一区二区朝鲜| 精品国产人成亚洲区| A∨色狠狠一区二区三区| 为什么穿裙子方便打野| 久久久精品人妻一区二区三区四| JAPANESE国产中文在线观| 无码专区丰满人妻斩六十路| 久久天天躁狠狠躁夜夜2020| 成人免费视频一区二区三区| 亚洲AV永久无码精品主页| 欧美成人精品激情在线观看| 国产成人综合欧美精品久久| 一本大道香蕉在线资源| 日本熟妇人妻XXXXX人电影| 娇小的学生BBW18| www.av在线.com| 亚洲VA中文字幕无码一二三区| 欧美XXXX黑人又粗又长| 国产猛男GAY1069视频| 67194熟妇在线观看线路| 无人区码一码二码高高| 欧美成人伊人久久综合网| 国产一区二区三区久久精品|