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

import java.util.Deque;

import com.sun.btrace.BTraceUtils;
import com.sun.btrace.BTraceUtils.Strings;
import com.sun.btrace.Profiler;
import com.sun.btrace.annotations.*;

@BTrace
public class SimpleProfiler {
    @Property(name = "profiler")
    public static Profiler profiler = BTraceUtils.Profiling.newProfiler();

    @TLS
    public static Deque<Long> entryTimes = BTraceUtils.Collections.newDeque();

    @OnProbe(namespace = "profiler-probes", name = "profiler-entry")
    public static void entry() {
        BTraceUtils.Collections.push(entryTimes, box(timeMillis()));
        BTraceUtils.Profiling.recordEntry(profiler,
                Strings.strcat(Strings.strcat(name(probeClass()), "."), probeMethod()));
    }

    @OnProbe(namespace = "profiler-probes", name = "profiler-exit")
    public static void exit() {
        long startTime = unbox(BTraceUtils.Collections.removeFirst(entryTimes));
        long duration = timeMillis() - startTime;
        BTraceUtils.Profiling.recordExit(profiler,
                Strings.strcat(Strings.strcat(name(probeClass()), "."), probeMethod()), duration);
    }

    @OnTimer(5000)
    public static void timer() {
        BTraceUtils.Profiling.printSnapshot("Profiling snapshot", profiler, "%1$s %2$s %8$s %9$s %10$s");
    }
}

@@ -1,22 +1,15 @@
 import 
-static 
 com.sun.
@@ -30,114 +30,8 @@
 tils
-.*;%0A%0Aimport java.util.Deque;%0A%0Aimport com.sun.btrace.BTraceUtils;%0Aimport com.sun.btrace.BTraceUtils.Strings
 ;%0Aim
@@ -249,97 +249,8 @@
 );%0A%0A
-    @TLS%0A    public static Deque%3CLong%3E entryTimes = BTraceUtils.Collections.newDeque();%0A%0A
     
@@ -347,203 +347,107 @@
 try(
-) %7B%0A        BTraceUtils.Collections.push(entryTimes, box(timeMillis()));%0A        BTraceUtils.Profiling.recordEntry(profiler,%0A                Strings.strcat(Strings.strcat(name(probeClass()), %22.%22)
+@ProbeMethodName(fqn=true) String probeMethod) %7B%0A        BTraceUtils.Profiling.recordEntry(profiler
 , pr
@@ -455,19 +455,16 @@
 beMethod
-())
 );%0A    %7D
@@ -565,264 +565,131 @@
 xit(
-) %7B%0A        long startTime = unbox(BTraceUtils.Collections.removeFirst(entryTimes));%0A        long duration = timeMillis() - startTime;%0A        BTraceUtils.Profiling.recordExit(profiler,%0A                Strings.strcat(Strings.strcat(name(probeClass()), %22.%22)
+@ProbeMethodName(fqn=true) String probeMethod, @Duration long duration) %7B%0A        BTraceUtils.Profiling.recordExit(profiler
 , pr
@@ -701,11 +701,8 @@
 thod
-())
 , du

simplify SimpleProfiler