зеркало из
https://github.com/iharh/notes.git
synced 2025-10-30 21:26:09 +02:00
102 строки
2.6 KiB
Java
102 строки
2.6 KiB
Java
import com.sun.btrace.Profiler;
|
|
|
|
import com.sun.btrace.annotations.*;
|
|
|
|
import static com.sun.btrace.BTraceUtils.*;
|
|
|
|
@BTrace
|
|
public class CCSQ {
|
|
@Property
|
|
static Profiler prof = Profiling.newProfiler();
|
|
|
|
// collect
|
|
|
|
@OnMethod(
|
|
clazz="org.elasticsearch.index.search.child.ChildrenConstantScoreQuery$ParentOrdCollector",
|
|
method="collect"
|
|
)
|
|
public static void onEnterCollect(
|
|
@ProbeMethodName(fqn=false) String probeMethod
|
|
) {
|
|
Profiling.recordEntry(prof, getKey(probeMethod));
|
|
}
|
|
|
|
@OnMethod(
|
|
clazz="org.elasticsearch.index.search.child.ChildrenConstantScoreQuery$ParentOrdCollector",
|
|
method="collect",
|
|
location=@Location(value=Kind.RETURN)
|
|
)
|
|
public static void onReturnCollect(
|
|
@ProbeMethodName(fqn=false) String probeMethod,
|
|
@Duration long duration
|
|
) {
|
|
Profiling.recordExit(prof, getKey(probeMethod), duration);
|
|
}
|
|
|
|
// match
|
|
|
|
@OnMethod(
|
|
clazz="org.elasticsearch.index.search.child.ChildrenConstantScoreQuery$ParentOrdIterator",
|
|
method="match"
|
|
)
|
|
public static void onEnterMatch(
|
|
@ProbeMethodName(fqn=false) String probeMethod
|
|
) {
|
|
Profiling.recordEntry(prof, getKey(probeMethod));
|
|
}
|
|
|
|
@OnMethod(
|
|
clazz="org.elasticsearch.index.search.child.ChildrenConstantScoreQuery$ParentOrdIterator",
|
|
method="match",
|
|
location=@Location(value=Kind.RETURN)
|
|
)
|
|
public static void onReturnMatch(
|
|
@ProbeMethodName(fqn=false) String probeMethod,
|
|
@Duration long duration
|
|
) {
|
|
Profiling.recordExit(prof, getKey(probeMethod), duration);
|
|
}
|
|
|
|
// boilerplate
|
|
|
|
@OnEvent
|
|
public static void onEvent() {
|
|
Profiling.printSnapshot("current profile", prof);
|
|
}
|
|
|
|
private static String getKey(final String methodName) {
|
|
return concat(methodName, concat("-", str(currentThread())));
|
|
}
|
|
|
|
/*
|
|
@Property
|
|
static long cntCollect;
|
|
|
|
|
|
// Export - jvmstat/jstat counter
|
|
// Property - make the field exposed as an attribute of this MBean
|
|
|
|
@com.sun.btrace.annotations.Export
|
|
private static long cntWeight;
|
|
|
|
@OnMethod(
|
|
clazz="org.elasticsearch.index.search.child.ChildrenConstantScoreQuery",
|
|
method="createWeight"
|
|
)
|
|
public static void onCreateWeight() {
|
|
println(concat("onCreateWeight tid: ", str(currentThread())));
|
|
++cntWeight;
|
|
}
|
|
|
|
@OnEvent(value="v1")
|
|
public static void onEventV1() {
|
|
println("evt v1");
|
|
}
|
|
|
|
@OnTimer(10000)
|
|
public static void onTimer() {
|
|
println(perfLong("btrace.com.sun.btrace.samples.CCSQ.cntWeight"));
|
|
}
|
|
*/
|
|
}
|