<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    在路上

    路上有驚慌,路上有理想

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      28 Posts :: 1 Stories :: 10 Comments :: 0 Trackbacks
    BTrace是一個(gè)實(shí)時(shí)監(jiān)控工具,使用了java agent jvm attach技術(shù),可以在product的情況下實(shí)時(shí)監(jiān)控線上程序的運(yùn)行情況。另,有插件可與visualVM一起使用。
    不多說了,具體的可見:http://kenai.com/projects/btrace

    下面介紹幾個(gè)Helloworld示例:
    主要使用了btrace命令:btrace [pid] class

    pid可由jps命令快速查詢

    1.監(jiān)控方法輸入?yún)?shù):
     @OnMethod(
                    clazz="com.btrace.Person",
                    method="/set.*/"
                )
                public static void anyRead(@ProbeClassName String pcn, @ProbeMethodName String pmn, AnyType[] args) {
                    println(pcn);
                    println(pmn);
                    printArray(args);
                }

    執(zhí)行btract命令
    后臺(tái)輸出:
    com.btrace.Person
    setId
    [1, ]……

    2.監(jiān)控方法返回值
      @OnMethod(
                     clazz="com.btrace.Person",
                     method="/get.*/",
                     location=@Location(Kind.RETURN)
                   )  
         public static void defineclass(@Return String cl) {
               println(Strings.strcat("getValue ", cl));
               Threads.jstack();
           }
    執(zhí)行btract命令
    后臺(tái)輸出:
    getValue gum
    com.btrace.TestThread.main(TestThread.java:23)

    3.監(jiān)控jvm內(nèi)存使用情況
      @OnTimer(4000)
        public static void printMem() {
            println("Heap:");
            println(heapUsage());
            println("Non-Heap:");
            println(nonHeapUsage());
        }
    執(zhí)行btract命令
    后臺(tái)輸出:
    Heap:
    init = 268435456(262144K) used = 26175176(25561K) committed = 251658240(245760K)
     max = 492175360(480640K)
    Non-Heap:
    init = 12746752(12448K) used = 5892104(5754K) committed = 13598720(13280K) max =
     100663296(98304K)
    4.監(jiān)控方法執(zhí)行時(shí)間
       @TLS private static long startTime;
       
        @OnMethod(clazz="com.btrace.Person",method="setId")
        public static void onCall(){
            println("enter this method");
            startTime=timeMillis();
        }
       
        @OnMethod(clazz="com.btrace.Person",method="setId",location=@Location(Kind.RETURN))
        public static void onReturn(){
            println("method end!");
            println(strcat("Time taken ms",str(timeMillis()-startTime)));
        }
      后臺(tái)輸出:
       enter this method
       method end!
       Time taken ms0
    5.監(jiān)控Thread start
     @OnMethod(
            clazz="java.lang.Thread",
            method="start"
        )
        public static void func() {
            println("about to start a thread!");
        }
    后臺(tái)輸出:about to start a thread!
    posted on 2010-12-10 18:30 阮步兵 閱讀(3769) 評(píng)論(1)  編輯  收藏 所屬分類: Java

    Feedback

    # Air Jordan Shoes 2010-12-11 11:36 Air Jordan Shoes
    嗯謝謝分享  回復(fù)  更多評(píng)論
      

    主站蜘蛛池模板: 国产色婷婷精品免费视频| 99久久99久久精品免费看蜜桃 | 日本免费电影一区| 国产91在线|亚洲| 无码不卡亚洲成?人片| 一本天堂ⅴ无码亚洲道久久| 免费看污成人午夜网站| 日本牲交大片免费观看| 亚洲成a人片在线不卡一二三区 | 美女被免费视频网站a国产 | 亚洲日本成本人观看| 黄a大片av永久免费| 含羞草国产亚洲精品岁国产精品 | 最近2019中文免费字幕| 亚洲一区二区三区在线播放| 亚洲激情视频网站| 57PAO成人国产永久免费视频| 亚洲av片不卡无码久久| 天天摸天天碰成人免费视频| 欧洲亚洲国产精华液| 免费国产在线观看| 久久WWW免费人成—看片| 午夜亚洲AV日韩AV无码大全| 亚洲国产区男人本色| mm1313亚洲精品国产| 在线毛片片免费观看| 亚洲另类视频在线观看| 国内外成人免费视频| 2022免费国产精品福利在线| 亚洲91av视频| 免费无码不卡视频在线观看| 一级**爱片免费视频| 国产极品美女高潮抽搐免费网站| 一级毛片试看60分钟免费播放| 亚洲国产精品无码专区影院 | 外国成人网在线观看免费视频| 久久亚洲精品专区蓝色区| 亚洲精品网站在线观看不卡无广告| 精品国产免费一区二区三区香蕉| 亚洲欧洲自拍拍偷综合| 亚洲精品tv久久久久|