成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

Java軟件生產(chǎn)監(jiān)控工具Btrace使用方法詳解

瀏覽:3日期:2022-08-29 16:12:12

Btrace

BTrace是sun公司推出的一款Java 動態(tài)、安全追蹤(監(jiān)控)工具,可以在不用重啟的情況下監(jiān)控系統(tǒng)運行情況,方便的獲取程序運行時的數(shù)據(jù)信息,如方法參數(shù)、返回值、全局變量和堆棧信息等,并且做到最少的侵入,占用最少的系統(tǒng)資源。

項目地址:Btrace

用戶指南:UserGuide

Btrace使用

在Release頁面里下載最新Zip版,解壓就能用

tar -zxvf btrace-bin-1.3.8.3.tgzexport JAVA_HOME=/opt/taobao/javaexport PATH=$JAVA_HOME/bin:$PATH

./bin/btrace -cp /home/admin/projectname/target/projectname/BOOT-INF/classes 2016 SlowCall.java./bin/btrace -cp /home/admin/projectname/target/projectname.war/WEB-INF/classes:/home/admin/projectname/target/projectname.war/WEB-INF/lib/projectname-1.0-SNAPSHOT.jar 71419 BtraceTest.java > NT12.txt

由于Btrace會把腳本邏輯直接侵入到運行的代碼中,所以在使用上做很多限制:

1、不能創(chuàng)建對象

2、不能使用數(shù)組

3、不能拋出或捕獲異常

4、不能使用循環(huán)

5、不能使用synchronized關(guān)鍵字

6、屬性和方法必須使用static修飾

根據(jù)官方聲明,不恰當?shù)氖褂肂Trace可能導致JVM崩潰,如在BTrace腳本使用錯誤的class文件,所以在上生產(chǎn)環(huán)境之前,務必在本地充分的驗證腳本的正確性。

Btrace可以做什么?

1、接口性能變慢,分析每個方法的耗時情況;

2、當在Map中插入大量數(shù)據(jù),分析其擴容情況;

3、分析哪個方法調(diào)用了System.gc(),調(diào)用棧如何;

4、執(zhí)行某個方法拋出異常時,分析運行時參數(shù);

5、....

Btrace第一個例子

package com.metty.rpc.common;import java.util.Random;public class BtraceCase { public static Random random = new Random(); public int size; public static void main(String[] args) throws Exception { new BtraceCase().run(); } public void run() throws Exception { while (true) { add(random.nextInt(10), random.nextInt(10)); } } public int add(int a, int b) throws Exception { Thread.sleep(random.nextInt(10) * 100); return a + b; }}

執(zhí)行add方法時,對傳入?yún)?shù)、返回值以及執(zhí)行耗時進行分析,btrace腳本:

Java軟件生產(chǎn)監(jiān)控工具Btrace使用方法詳解

通過jps命令獲取pid為8454

執(zhí)行btrace 8454 Debug.java實現(xiàn)對運行代碼的監(jiān)控,輸出結(jié)果如下:

Java軟件生產(chǎn)監(jiān)控工具Btrace使用方法詳解

可以發(fā)現(xiàn),Btrace可以獲取每次執(zhí)行add方法時的數(shù)據(jù),當然Btrace能做的遠遠不止這些,比如獲取當前jvm堆使用情況、當前線程的執(zhí)行棧等等。

參數(shù)說明

@OnMethod

Btrace使用@OnMethod注解定義需要分析的方法入口

Java軟件生產(chǎn)監(jiān)控工具Btrace使用方法詳解

在@OnMethod注解中,需要指定class、method以及l(fā)ocation等,class表明需要監(jiān)控的類,method表明需要監(jiān)控的方法,指定方式如下:

1、使用全限定名:clazz='com.metty.rpc.common.BtraceCase', method='add'

2、使用正則表達式:clazz='/javax.swing..*/', method='/.*/'

3、使用接口:clazz='+com.ctrip.demo.Filter', method='doFilter'

4、使用注解:clazz='@javax.jws.WebService', method=''@javax.jws.WebMethod'

5、如果需要分析構(gòu)造方法,需要指定method='<init>'

@Location

定義Btrace對方法的攔截位置,通過@Location注解指定,默認為Kind.ENTRY

1、Kind.ENTRY:在進入方法時,調(diào)用Btrace腳本

2、Kind.RETURN:方法執(zhí)行完時,調(diào)用Btrace腳本,只有把攔截位置定義為Kind.RETURN,才能獲取方法的返回結(jié)果@Return和執(zhí)行時間@Duration

Java軟件生產(chǎn)監(jiān)控工具Btrace使用方法詳解

3、Kind.CALL:分析方法中調(diào)用其它方法的執(zhí)行情況,比如在execute方法中,想獲取add方法的執(zhí)行耗時,必須把where設置成Where.AFTER

Java軟件生產(chǎn)監(jiān)控工具Btrace使用方法詳解

4、Kind.LINE:通過設置line,可以監(jiān)控代碼是否執(zhí)行到指定的位置

Java軟件生產(chǎn)監(jiān)控工具Btrace使用方法詳解

5、Kind.ERROR, Kind.THROW, Kind.CATCH

用于對某些異常情況的跟蹤,包括異常拋出,異常被捕獲,異常未捕獲被拋出方法之外

如何使用Btrace定位問題1、找出所有耗時超過1ms的過濾器Filter

Java軟件生產(chǎn)監(jiān)控工具Btrace使用方法詳解

由于@Dutation返回的時間是納秒級別,需要進行轉(zhuǎn)換,如果定位一個Filter性能變慢,接著使用@Location(Kind.CALL)進行更細粒度的分析。

2、分析哪個方法調(diào)用了System.gc(),調(diào)用棧如何?

Java軟件生產(chǎn)監(jiān)控工具Btrace使用方法詳解

通過查看調(diào)用棧,可以很清楚的發(fā)現(xiàn)哪個類哪個方法調(diào)用了System.gc()

3、統(tǒng)計方法的調(diào)用次數(shù),且每隔1分鐘打印調(diào)用次數(shù)

Java軟件生產(chǎn)監(jiān)控工具Btrace使用方法詳解

Btrace的@OnTimer注解可以實現(xiàn)定時執(zhí)行腳本中的一個方法

4、方法執(zhí)行時,查看對象的實例屬性值

Java軟件生產(chǎn)監(jiān)控工具Btrace使用方法詳解

通過反射機制,可以很方法的得到當前實例的屬性值

總結(jié)

Btrace能做的事情太多,但使用之前切記檢查腳本的可行性,一旦Btrace腳本侵入到系統(tǒng)中,只有通過重啟才能恢復。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標簽: Java
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
国产精品主播直播| 国产在线精品一区二区| 免费在线视频一区| 亚洲精品影院| 国产精品私人影院| 97se亚洲国产综合自在线观| 91精品一区二区三区久久久久久| 男男成人高潮片免费网站| 亚洲一区三区视频在线观看| 一区二区中文字幕在线| 欧美午夜不卡| 久久久久久久网| 91小视频在线观看| 精品国产一区二区三区不卡 | 国产精品国产三级国产aⅴ入口| 色综合欧美在线| 久久久久久久久岛国免费| 成人国产精品免费观看动漫| 日韩欧美久久久| 粉嫩绯色av一区二区在线观看| 日韩一区二区免费在线电影| 国产福利一区二区三区视频| 91精品国产乱| 国产 日韩 欧美大片| 91精品国产日韩91久久久久久| 久久成人免费电影| 欧美无人高清视频在线观看| 久久福利资源站| 欧美日韩性生活| 精品亚洲成a人在线观看| 欧美三级电影在线观看| 国产麻豆日韩欧美久久| 日韩一区二区精品葵司在线| 成人爽a毛片一区二区免费| 欧美大片日本大片免费观看| caoporen国产精品视频| 精品国产乱码久久久久久影片| 99久久99久久免费精品蜜臀| 国产日韩欧美制服另类| 狠狠入ady亚洲精品| 亚洲欧美视频一区| 西西人体一区二区| 蓝色福利精品导航| 日韩一级欧美一级| 97久久超碰国产精品| 国产精品传媒视频| 国产日韩欧美三级| 日韩高清在线不卡| 欧美一区二区精品久久911| 成人av在线播放网站| 久久久五月婷婷| 欧美日韩亚洲一区| 亚洲精品国产一区二区精华液| 99成人精品| 丝瓜av网站精品一区二区| 欧美日本在线看| 91丝袜国产在线播放| 一区二区三区日韩精品| 91成人免费电影| av资源网一区| 亚洲青青青在线视频| 色综合av在线| 成人性生交大片| 国产精品久久久久久久久果冻传媒| 国产一级精品aaaaa看| 美女视频黄久久| 日韩一区二区免费电影| 欧美性久久久| 亚洲一区二区三区中文字幕| 欧美色手机在线观看| www.成人网.com| 亚洲激情自拍偷拍| 色婷婷综合久久久久中文一区二区| 国产精品伊人色| 欧美高清在线精品一区| 国产视频一区在线观看一区免费| 久久国产婷婷国产香蕉| 欧美精品一区二区久久婷婷| 亚洲精品看片| 久久国产视频网| 中文一区在线播放| 久久人人97超碰国产公开结果| 国产精品一区二区三区乱码| 国产精品久久久久一区| 亚洲一区二区三区四区中文 | 亚洲国产精品精华液ab| 亚洲一区bb| 成人妖精视频yjsp地址| 亚洲伊人伊色伊影伊综合网| 欧美一区二区黄| 亚洲日韩成人| 国产麻豆精品久久一二三| 国产精品视频免费| 老鸭窝91久久精品色噜噜导演| 国产久卡久卡久卡久卡视频精品| 国产精品看片你懂得| 欧美伊人久久大香线蕉综合69 | 欧美三级第一页| 久久精品国内一区二区三区| 国产欧美一区二区精品婷婷| 一本到三区不卡视频| 91香蕉视频污在线| 免费在线观看一区二区三区| 国产精品理伦片| 欧美一区二区精品| 国产欧美日韩一区二区三区| 国内精品免费**视频| 中文字幕一区二区三| 欧美精品自拍偷拍| 99国产精品久久久久久久| 国产超碰在线一区| 亚洲一区二区欧美激情| www国产精品av| 老牛嫩草一区二区三区日本 | 欧美精品日韩精品| 日韩一级大片| 国产成人av福利| 亚洲第一综合色| 欧美精品一区二区在线播放| 日本韩国精品在线| 亚洲激情在线| 99久久99久久精品免费看蜜桃| 男男gaygay亚洲| 亚洲乱码日产精品bd| 精品国产乱码久久| 欧美性大战xxxxx久久久| 亚洲国产合集| 大胆亚洲人体视频| 日本不卡一区二区| 亚洲欧美日韩国产成人精品影院| 欧美一级二级在线观看| 亚洲自啪免费| 欧美一区二区三区久久精品茉莉花| 五月天激情综合| 亚洲日本中文字幕区| 2023国产精品自拍| 欧美日韩mp4| 香蕉久久夜色精品国产| 欧美午夜不卡| 成人开心网精品视频| 久久丁香综合五月国产三级网站| 亚洲一级二级三级| 国产精品国产馆在线真实露脸 | 国产欧美一区二区精品久导航 | 亚洲国产精品一区二区www在线| 中国av一区二区三区| 日韩欧美在线一区二区三区| 欧美亚洲一区三区| 免费久久久一本精品久久区| 国产一区日韩欧美| av资源网一区| 高清国产一区二区| 精品午夜久久福利影院| 青青青伊人色综合久久| 一区二区三区国产精品| 国产精品国产三级国产aⅴ无密码| 精品国产123| 91精品国产全国免费观看| 在线观看日韩国产| 久久精品卡一| 一区二区精品在线观看| 国产在线欧美| 欧美午夜精品理论片a级大开眼界| 成人一区二区三区中文字幕| 国产真实乱偷精品视频免| 久久国产视频网| 久久精品国产在热久久| 日韩av电影天堂| 亚洲123区在线观看| 亚洲天天做日日做天天谢日日欢 | 麻豆91精品视频| 美女高潮久久久| 天天免费综合色| 亚洲一区二区三区影院| 一级做a爱片久久| 亚洲天堂网中文字| 中文成人综合网| 欧美国产激情一区二区三区蜜月| 久久精品欧美一区二区三区不卡 | 欧美精品一线| 91网站最新地址| 成av人片一区二区| 成人高清伦理免费影院在线观看| 国产一区二区在线电影| 久久精品免费观看| 精品一区二区三区蜜桃| 国产精品88888| 成人动漫在线一区| 91丨porny丨国产入口| 午夜欧美理论片| 韩国av一区| 亚洲精品黄色| 亚洲一区三区视频在线观看 | 成人免费精品视频| 91一区二区在线| 欧美日韩第一区| 亚洲青涩在线| 亚洲欧美日韩精品综合在线观看 | 欧美午夜精品久久久久久孕妇 | 国产欧美在线观看一区|