欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識(shí)庫 > 利用PHP擴(kuò)展Xhprof分析項(xiàng)目性能實(shí)踐教程

利用PHP擴(kuò)展Xhprof分析項(xiàng)目性能實(shí)踐教程

熱門標(biāo)簽:太原400電話申請(qǐng)流程 桂陽公司如何做地圖標(biāo)注 電信外呼系統(tǒng)多少錢一個(gè)月 企業(yè)400電話辦理多少費(fèi)用 代理打電話機(jī)器人 神龍斗士電話機(jī)器人 合肥企業(yè)外呼系統(tǒng)線路 宿州正規(guī)外呼系統(tǒng)軟件 萍鄉(xiāng)商鋪地圖標(biāo)注

一、背景

項(xiàng)目即將上線,想通過一些工具來分析代碼的穩(wěn)定性和效率,想起在上個(gè)團(tuán)隊(duì)時(shí)使用過的xhprof擴(kuò)展;因?yàn)閾Q了新電腦,所以需要重新編譯此擴(kuò)展,現(xiàn)將安裝與實(shí)際排查過程完整記錄下來,方便自己回顧和幫助更多的讀者。

XHProf 是 FaceBook 開發(fā)的一個(gè)函數(shù)級(jí)別的 PHP 分層分析器。

數(shù)據(jù)收集部分是一個(gè)基于 C 的 PHP 擴(kuò)展,分析報(bào)告是一系列基于 PHP 的 HTML 導(dǎo)航頁面。

XHProf 能統(tǒng)計(jì)每個(gè)函數(shù)的調(diào)用次數(shù)、內(nèi)存使用、CPU占用等多項(xiàng)重要的數(shù)據(jù)。

并且 XHProf 還能比較兩個(gè)統(tǒng)計(jì)樣本,或從多個(gè)數(shù)據(jù)樣本中匯總結(jié)果。

XHProf 是分析 PHP 程序執(zhí)行效率的利器,能讓我們得到更底層的的分析數(shù)據(jù)。

下面話不多說了,來一起看看詳細(xì)的介紹吧

二、操作步驟

  • 安裝擴(kuò)展
  • 配置擴(kuò)展
  • 測(cè)試分析

三、安裝

xhprof擴(kuò)展PHP并不自帶,需要筆者去單獨(dú)安裝它,安裝之后才能使用,筆者這里采用源碼安裝方式,安裝過程如下

3.1 下載源碼

xhprof在PHP的PECL官方上面已經(jīng)比較老了,筆者的PHP版本為PHP7.1因此,需要在GitHub上下載xhprof上比較新的源碼,參考命令如下

git clone https://github.com/longxinH/xhprof

3.2 檢測(cè)環(huán)境

進(jìn)入編譯的文件夾,參考命令

cd xhprof/extension/

現(xiàn)在筆者需要編譯一下源碼,在編譯之前可以使用phpze來探測(cè)PHP的環(huán)境,參考命令如下:

phpize

返回結(jié)果如下

Configuring for:
PHP Api Version:         20160303
Zend Module Api No:      20160303
Zend Extension Api No:   320160303

3.3 編譯安裝

生成 Makefile,為下一步的編譯做準(zhǔn)備

./configure

返回結(jié)果如下

creating libtool
appending configuration tag "CXX" to libtool
configure: creating ./config.status
config.status: creating config.h
config.status: config.h is unchanged

開始編譯,并進(jìn)行安裝

make  make install

返回結(jié)果如下

Build complete.
Don't forget to run 'make test'.

Installing shared extensions:     /usr/local/Cellar/php@7.1/7.1.19/pecl/20160303/

從返回信息中可以看到已經(jīng)安裝完成,并顯示了擴(kuò)展文件存放的位置

四、配置

在編譯安裝源碼之后,筆者還需要對(duì)PHP的配置文件夾以及xhprof的進(jìn)行一些簡單的配置,操作過程如下所示

4.1 找出配置文件位置

要修改PHP的配置首先需要知道配置文件在什么位置,這里可以通過PHP的命令來查看配置文件存放位置,參考命令如下:

php --ini

執(zhí)行命令后,返回結(jié)果如下

Configuration File (php.ini) Path: /usr/local/etc/php/7.1
Loaded Configuration File:         /usr/local/etc/php/7.1/php.ini
Scan for additional .ini files in: /usr/local/etc/php/7.1/conf.d
Additional .ini files parsed:      /usr/local/etc/php/7.1/conf.d/ext-opcache.ini

在返回結(jié)果當(dāng)中,可以看到多個(gè)配置文件的路徑,筆者所需要的是第二個(gè)文件php.ini

查看擴(kuò)展目錄存放位置,參考命令如下

cat /usr/local/etc/php/7.1/php.ini | grep extension_dir

返回結(jié)果如下

extension_dir = "/usr/local/lib/php/pecl/20160303"
; extension_dir = "ext"
; Be sure to appropriately set the extension_dir directive.
;sqlite3.extension_dir =

4.2 修改配置

從返回的結(jié)果當(dāng)中,可以看到擴(kuò)展的存放目錄位置如下

/usr/local/lib/php/pecl/20160303

現(xiàn)在需要將剛才編譯好的xhprof擴(kuò)展復(fù)制到該目錄當(dāng)中,參考命令如下

cp /usr/local/Cellar/php@7.1/7.1.19/pecl/20160303/xhprof.so /usr/local/Cellar/php@7.1/7.1.19/pecl/20160303/

通過vim編輯器編輯配置文件,參考命令如下

vim /usr/local/etc/php/7.1/php.ini

在配置文件尾部增加xhprof的配置,以及自定義一個(gè)用來保存xhprof生成的源文件參考配置如下

[xhprof]
extension=xhprof.so
xhprof.output_dir=/data/www/xhprof/save_output_dir 

4.3 重啟生效

保存好之后,筆者重啟php-fpm讓其配置生效,重啟命令可以通過brew命令來查看,參考命令如下:

brew info php@7.1

在命令執(zhí)行后,返回的信息中可以看到如下信息

To have launchd start php@7.1 now and restart at login:
 brew services start php@7.1
Or, if you don't want/need a background service you can just run:
 php-fpm

因此筆者構(gòu)造的重啟PHP-FPM命令如下:

brew services restart php@7.1

重啟完成后,返回結(jié)果如下

Stopping `php@7.1`... (might take a while)
==> Successfully stopped `php@7.1` (label: homebrew.mxcl.php@7.1)
==> Successfully started `php@7.1` (label: homebrew.mxcl.php@7.1)

4.4 驗(yàn)證安裝

現(xiàn)在驗(yàn)證xhprof擴(kuò)展是否已經(jīng)安裝完成,參考命令如下

php -m | grep xhprof

命令執(zhí)行后,安裝擴(kuò)展成功的返回結(jié)果將會(huì)顯示xhprof,如下圖所示

五、測(cè)試

經(jīng)過上面的操作筆者已經(jīng)成功的安裝與配置,現(xiàn)在需要用PHP代碼來進(jìn)行驗(yàn)證xhprof的分析效果

5.1 創(chuàng)建虛擬主機(jī)

首先創(chuàng)建一個(gè)虛擬主機(jī),讓用戶可以通過瀏覽器訪問所訪問,創(chuàng)建虛擬主機(jī)需要有一個(gè)根目錄,并編輯nginx配置文件,具體操作如下:

5.1.1 創(chuàng)建項(xiàng)目目錄

創(chuàng)建項(xiàng)目根目錄,參考命令如下

mkdir -p /Users/song/mycode/work/test

創(chuàng)建成功之后,筆者需要將之前git拉下來的部分代碼復(fù)制到項(xiàng)目根目錄當(dāng)中,參考命令如下

cp -r xhprof/xhprof_html /Users/song/mycode/work/test/
cp -r xhprof/xhprof_lib /Users/song/mycode/work/test/

5.1.2 編輯配置文件

添加配置文件,參考命令

/usr/local/etc/nginx/nginx.conf

添加配置文件如下

 server {
  listen  80;
  server_name test.localhost;

  root /Users/song/mycode/work/test;
  index index.html index.htm index.php;
  
  location / {
   try_files $uri $uri/ /index.php?$query_string;
  }


  location ~ \.php$ {
   fastcgi_pass 127.0.0.1:9000;
   fastcgi_index index.php;
   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   include  fastcgi_params;
  }

 }

在/etc/hosts文件中增加入一行解析記錄,記錄內(nèi)容如下:

127.0.0.1 test.localhost

5.2 新建測(cè)試代碼

在git倉庫的examples文件夾下,已經(jīng)有了一份demo代碼,不過這份代碼的注釋都是英文,而且排版方式也不易筆者自己理解,因此筆者重新編輯了此文件,參考步驟如下命令

使用vim新建一個(gè)PHP文件

vim /Users/song/mycode/work/test/test.php

在文件中加入以下代碼

?php

//加載所需文件
include_once "./xhprof_lib/utils/xhprof_lib.php";
include_once "./xhprof_lib/utils/xhprof_runs.php";

//隨意定義一個(gè)函數(shù)
function test($max)
{
 for ($idx = 0; $idx  $max; $idx++) {
  echo '';
 }
}

//定義測(cè)試方法
function a()
{
 test(rand(1000,5000));
}

//開始分析
xhprof_enable();

//需要分析的函數(shù)
a();

//結(jié)束分析
$xhprof_data = xhprof_disable();
//實(shí)例化xhprof類
$xhprof_runs = new XHProfRuns_Default();
//獲取當(dāng)前當(dāng)前頁面分析結(jié)果
$run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_foo");

echo "\nhttp://test.localhost/xhprof/xhprof_html/index.php?run=$run_idsource=xhprof_foo\n";

保存代碼之后,通過瀏覽器訪問對(duì)應(yīng)的URL地址,URL地址如下所示

http://test.localhost/xhprof/test.php

5.3 結(jié)果分析

運(yùn)行后結(jié)果,如下圖

在頁面中可以看到一個(gè)URL地址,復(fù)制并打開此URL地址之后,便能看到此代碼的分析結(jié)果,如下圖所示

在頁面中有一個(gè)列表,展示了每一個(gè)方法所消耗的時(shí)間,如果覺得列表的方式表示不夠清晰,點(diǎn)擊頁面中的 View Full Callgraph 鏈接可以直接生成一個(gè)圖片,如下圖所示

在圖中很清晰的可以看到執(zhí)行時(shí)間都消耗在test方法上,因此筆者可以針對(duì)這個(gè)方法進(jìn)行針對(duì)性的優(yōu)化。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

您可能感興趣的文章:
  • php xhprof使用實(shí)例詳解
  • PHP性能測(cè)試工具xhprof安裝與使用方法詳解
  • PHP性能分析工具xhprof的安裝使用與注意事項(xiàng)
  • 使用XHProf查找PHP性能瓶頸的實(shí)例
  • Linux系統(tǒng)下使用XHProf和XHGui分析PHP運(yùn)行性能
  • php輕量級(jí)的性能分析工具xhprof的安裝使用
  • PHP性能分析工具XHProf安裝使用教程
  • 基于在生產(chǎn)環(huán)境中使用php性能測(cè)試工具xhprof的詳解
  • PHP7下安裝并使用xhprof性能分析工具

標(biāo)簽:綏化 衡陽 辛集 鄂州 廊坊 白銀 崇左 太原

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《利用PHP擴(kuò)展Xhprof分析項(xiàng)目性能實(shí)踐教程》,本文關(guān)鍵詞  利用,PHP,擴(kuò)展,Xhprof,分析,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《利用PHP擴(kuò)展Xhprof分析項(xiàng)目性能實(shí)踐教程》相關(guān)的同類信息!
  • 本頁收集關(guān)于利用PHP擴(kuò)展Xhprof分析項(xiàng)目性能實(shí)踐教程的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    亚洲综合免费观看高清在线观看| 日韩一区二区免费在线电影 | 五月综合激情日本mⅴ| 99久久国产免费看| 国产精品九九九九九九| 国产精品三级av| 成人免费看视频| 老妇女50岁三级| 最新欧美精品一区二区三区| 国产91精品入口| 国产少妇在线观看| 亚洲欧洲在线观看av| av亚洲精华国产精华精| 色视频欧美一区二区三区| 亚洲女同女同女同女同女同69| 99国产精品久| 欧美日韩综合在线免费观看| 一区二区久久久久久| 苍井空张开腿实干12次| 欧美精品久久一区| 天堂午夜影视日韩欧美一区二区| 人妻无码一区二区三区| 亚洲精品在线电影| 国产麻豆视频精品| 国产精品视频一区二区在线观看| 国产精品久久综合| 青青草精品在线| 91精品欧美综合在线观看最新| 日韩av一区二| 美国精品一区二区| 日韩一区在线看| 极品人妻一区二区| 日韩视频在线观看一区二区| 久久精品国产澳门| 中文字幕在线观看2018| 亚洲日本一区二区| 在线xxxxx| 久久影院午夜论| 成人小视频在线观看| 欧洲另类一二三四区| 五月天一区二区| www久久久久久久| 最新日韩av在线| a级一a一级在线观看| 欧美精品一区二区三区蜜桃| 国产.精品.日韩.另类.中文.在线.播放| 色老汉av一区二区三区| 午夜精品爽啪视频| 又色又爽的视频| 亚洲精品写真福利| 亚洲天堂视频一区| 成人欧美一区二区三区1314| 大尺度做爰床戏呻吟舒畅| 26uuu亚洲婷婷狠狠天堂| 不卡视频在线看| 日韩一区二区免费电影| 高清不卡一区二区| 91.xcao| 日韩电影免费一区| 欧美三级黄色大片| 首页欧美精品中文字幕| 99自拍偷拍视频| 亚洲大片精品永久免费| 激情高潮到大叫狂喷水| 亚洲香肠在线观看| 美国美女黄色片| 亚洲成人综合在线| 日本一二三区在线观看| 日韩1区2区日韩1区2区| 成年人av电影| 久久国产精品色| 欧美三区免费完整视频在线观看| 久久成人免费网| 欧美性xxxxxxxx| 国产一区二区三区四区五区美女| 欧美在线色视频| 国产一本一道久久香蕉| 欧美日韩不卡一区| 成人综合婷婷国产精品久久免费| 91精品国产91综合久久蜜臀| 成人av在线播放网址| 精品久久久久久久久久久久包黑料| 99re成人在线| 国产喂奶挤奶一区二区三区| 亚洲啪av永久无码精品放毛片| 中文字幕一区二区三区不卡在线| 青青草福利视频| 亚洲福利视频一区二区| 欧美黑人性猛交xxx| 久久99深爱久久99精品| 欧美另类久久久品| 99久久er热在这里只有精品15| 久久欧美中文字幕| 中文乱码人妻一区二区三区视频| 亚洲人吸女人奶水| www.99re6| 激情六月婷婷久久| 欧美一级欧美三级在线观看 | 色综合中文字幕国产 | 欧美亚洲动漫精品| 国产乱码精品一区二区三| 欧美一区二区不卡视频| 日本r级电影在线观看 | 亚洲国产av一区| 亚洲va国产天堂va久久en| 色噜噜狠狠色综合中国| 高清久久久久久| 国产丝袜欧美中文另类| 乐播av一区二区三区| 爽好久久久欧美精品| 欧美日韩高清在线播放| 丰满少妇中文字幕| 亚洲乱码国产乱码精品精可以看| 国产精品视频一区二区三| 国内外精品视频| 精品88久久久久88久久久| 无码h肉动漫在线观看| 日韩不卡手机在线v区| 91精品欧美福利在线观看| 亚洲少妇中文字幕| 亚洲一区二区成人在线观看| 欧美在线小视频| 激情小说欧美色图| 亚洲最大成人综合| 欧美无人高清视频在线观看| 在线观看网站黄| 亚洲精品日产精品乱码不卡| 91精品91久久久中77777| www.日韩大片| 亚洲激情自拍视频| 欧美性三三影院| 日本少妇xxxx软件| 午夜视黄欧洲亚洲| 欧美一区欧美二区| 无码人妻精品一区二区三应用大全| 日韩精品五月天| 欧美成人女星排名| 国产肥白大熟妇bbbb视频| 久久国产福利国产秒拍| 精品欧美一区二区三区精品久久| 五级黄高潮片90分钟视频| 久久精品国产一区二区| 久久久久久一二三区| 97在线观看视频免费| 成人黄色片在线观看| 一区二区三区欧美| 884aa四虎影成人精品一区| 草草地址线路①屁屁影院成人| 久久国产精品免费| 国产欧美日韩在线| 日本精品一级二级| 久久久老熟女一区二区三区91| 奇米综合一区二区三区精品视频| 精品国产sm最大网站免费看| 免费91在线观看| 91视频一区二区三区| 午夜精品123| www成人在线观看| 日韩女优一区二区| 无码人妻丰满熟妇区毛片蜜桃精品| 日韩精品亚洲一区二区三区免费| 久久老女人爱爱| 色婷婷亚洲一区二区三区| 日本少妇xxxx| 国产在线精品一区二区不卡了 | 级毛片内射视频| 成人一区二区三区视频在线观看 | 91成人精品一区二区| 不卡区在线中文字幕| 香蕉久久一区二区不卡无毒影院| 精品va天堂亚洲国产| 色综合久久久久久久久久久| 国产精品九九视频| 国产精一区二区三区| 亚洲激情六月丁香| 精品三级av在线| 日本精品一区二区三区四区的功能| 三级男人添奶爽爽爽视频| 国产精品69毛片高清亚洲| 夜夜精品视频一区二区| 久久亚洲捆绑美女| 在线观看视频一区二区欧美日韩| 亚洲欧美色图视频| 暴力调教一区二区三区| 日韩成人一区二区三区在线观看| 国产精品丝袜久久久久久app| 91精品在线一区二区| 国产男女猛烈无遮挡在线喷水| 欧洲熟妇的性久久久久久| 国内精品在线播放| 亚洲一本大道在线| 国产色综合久久| 777a∨成人精品桃花网| 来吧亚洲综合网| 中文字幕av观看| 99精品久久久久久| 国模娜娜一区二区三区| 亚洲va欧美va国产va天堂影院| 国产精品欧美久久久久一区二区| 91精品欧美综合在线观看最新|