BTrace means best trace

こんばんは、とうとう せろり が騒ぎ出したBTrace。


"BTrace means best trace" は僕が勝手に作った言葉です。


BTraceとは、BTrace program(Javaのコード)でトレースしたい内容を記述できるんです。



とりあえず以下のAnnotationを覚えておけば一人前のBTracerに近づけることでしょう。

Method Annotation

@OnMethod
@OnTimer
@OnError
@OnExit
@OnEvent
@OnLowMemory
@OnProbe

Field Annotation

@Export
@TLS

Class Annotations

@DTrace
@DTraceRef
@BTrace

そして、BTraceの熱いサンプルの2つくらい見れば、せろりより詳しくなれるはずです。

Deadlock.java

import com.sun.btrace.annotations.*;
import static com.sun.btrace.BTraceUtils.*;

/**
 * This BTrace program demonstrates deadlocks
 * built-in function. This example prints 
 * deadlocks (if any) once every 4 seconds.
 */ 
@BTrace public class Deadlock {
    @OnTimer(4000)
    public static void print() {
        deadlocks();        
    }
}


Memory.java

package com.sun.btrace.samples;

import com.sun.btrace.annotations.*;
import static com.sun.btrace.BTraceUtils.*;

/**
 * Simple BTrace program that prints memory
 * usage once every 4 seconds. It is possible
 * to modify this to dump heap depending on 
 * used memory crossing a threshold or some other
 * such condition. [dumpHeap is a built-in function].
 */
@BTrace public class Memory {
    @OnTimer(4000)
    public static void printMem() {
        println("Heap:");
        println(heapUsage());
        println("Non-Heap:");
        println(nonHeapUsage());
    }
}

こちらを見るともっとおもしろいという事が分かります。
http://blogs.sun.com/sundararajan/




ということで "BTrace means best trace" で決まりですね。





ところで、僕が技術ブログを書く理由は、田舎の母親に元気に生きてますよとアピールする為です。
そうでもしないと最近、人生初の携帯をGETした母親が4秒ごとに電話かメールしてきて困るのです。
うちの母親が件名以外に文章を打てるようになったら、技術ブログも書かなくて済みそうです。