BTrace實戰(zhàn)

首先推薦一下【江南白衣】大神對BTrace的文章Btrace入門到熟練小工完全指南。而且在看本篇文章之前最好先看一下這篇文章,不然效果不是很好。

1.如何在Linux下安裝Btrace并使用

1.1 安裝Btrace

1.下載安裝包[下載地址](https://github.com/btraceio/btrace/releases/download/v1.3.8.3-1/btrace-bin-1.3.8.3.tgz)
2.解壓 tar -xvf btrace-bin-1.3.8.3.tgz
3.導出環(huán)境變量
export BTRACE_HOME=/home/blues/btrace  
export PATH=$PATH:$BTRACE_HOME/bin  

1.2 編寫B(tài)TraceDemo

  • 準備測試程序
import java.util.Random;
public class BTraceDemo {
    public static void main(String[] args) {
        Calculator calculator = new Calculator();
        Random random = new Random();
        while (true) {
            System.out.println(calculator.add(random.nextInt(10), random.nextInt(10)));
        }
    }
}

public class Calculator {
    private int c = 1;

    public int add(int a, int b) {
        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return a + b;
    }
}
 

我們將測試程序放在btrace_test_demo目錄下,然后編譯,運行

root@develop ]# cd btrace_test_demo/
[root@develop btrace_test_demo]# javac BTraceDemo.java 
[root@develop btrace_test_demo]# java BTraceDemo
16
8
17
  • 獲取程序的pid
[root@develop btrace_test_demo]# jps
3642 Bootstrap
32752 BTraceDemo
  • 將Btrace腳本綁定到應用程序中
[root@develop bin]# ./btrace 32752 ../../btrace_script/BTraceTest.java 
trace1:a=3,b=9,sum=12

OK,這樣就算將Btrace的腳本嵌入到我們的應用程序中了。具體的腳本的語法和用法可以參考大神江南白衣的博客

2.怎樣才能方便快捷無誤地寫出BTrace腳本呢

2.1 使用VisualVm來寫

如果你使用VisualVm的話,那么也可以使用VisualVm來編寫B(tài)Trace腳本。不過需要你安裝btrace的插件。在VisualVm中安裝插件異常的爽,只需要在插件列表中點擊一下就可以了。

如下圖(由于我已經(jīng)安裝過了,所以不再【可用插件】列表中,在【已安裝】列表中)

Btrace插件列表.png
BTrac已安裝列表.png

安裝好BTrace插件之后就可以使用VIsualVm來打開一個java應用程序了。如下打開BTrace腳本的編寫界面

打開Btrace插件界面.png
Btrace編寫腳本界面.png

在這里面編寫B(tài)Trace腳本其實和在記事本上編寫腳本差不多。哪為啥要在這寫呢?

  • 添加classpath比較方便
  • 將腳本綁定到應用程序方便

所以如果是單純地為了寫出正確的腳本的話,在這里寫是不合適的。下面介紹第二種方式。

2.2 使用eclipse來寫B(tài)Trace腳本

對于一般的程序員而言,使用記事本來寫程序不僅效率低下,而且極其容器出錯。所以偉大的IDE就誕生了。主流的Java語言的IED有eclipse,idea等。所以如果能在IDE下來寫B(tài)trace的腳本的話,出錯的可能性就很低了。

下面就來介紹一下怎么使用eclipse來寫B(tài)trace腳本。

首先我們來看一下BTrace下載的目錄的結(jié)構(gòu)。順便提供一下我使用的Btrace版本的下載地址

BTrace目錄結(jié)構(gòu)

在【build】下有一個btrace-client.jar的jar包,我們可以將該jar包加到我們的eclipse中來編寫,這樣我們就可以使用eclipse的提示功能和自動編譯的功能了。這樣也就不至于交給運維的腳本是有編譯和語法問題的。

btrace-client.jar
eclipse下編寫B(tài)trace腳本.png

總結(jié):寫腳本一定要在eclispse下編寫,保證語法無誤。但是如果只是需要在本機運行BTrace的話,那么就可以使用VisualVm的BTrace插件了。但是如果要是在linux下來運行的話,那還是得用命令行來運行。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,273評論 6 342
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,564評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,045評論 25 709
  • 你看遠方的眼 落在我的時間 我的臉、輕觸你的瞳孔 呼吸摩挲過冬天 戰(zhàn)栗的風 被交疊的心跳拉平 折成一段悠揚的詠嘆 ...
    躲進麥田閱讀 260評論 0 9
  • 沒有夢想和咸魚又有什么區(qū)別 可是又有多少人實現(xiàn)過自己的夢想 現(xiàn)在才懂的夢想是可以實現(xiàn)的 當然投機取巧是完全不可能的...
    赤足者閱讀 197評論 0 0

友情鏈接更多精彩內(nèi)容