BTrace
是一个实时监控工具,使用了
java agent
和
jvm attach
技术,可以在product的情况下实时监控线上程序的运行情况
。另,有插件可与visualVM一起使用。
不多说了,具体的可见:http://kenai.com/projects/btrace
下面介绍几个Helloworld示例:
主要使用了btrace命令:btrace [pid] class
pid可由jps命令快速查询
1.监控方法输入参数:
@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);
}
执行btract命令
后台输出:
com.btrace.Person
setId
[1, ]……
2.监控方法返回值
@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();
}
执行btract命令
后台输出:
getValue gum
com.btrace.TestThread.main(TestThread.java:23)
3.监控jvm内存使用情况
@OnTimer(4000)
public static void printMem() {
println("Heap:");
println(heapUsage());
println("Non-Heap:");
println(nonHeapUsage());
}
执行btract命令
后台输出:
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.监控方法执行时间
@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)));
}
后台输出:
enter this method
method end!
Time taken ms0
5.监控Thread start
@OnMethod(
clazz="java.lang.Thread",
method="start"
)
public static void func() {
println("about to start a thread!");
}
后台输出:about to start a thread!
分享到:
相关推荐
- **与Java Profiler**:Java Profiler如VisualVM或JProfiler提供全面的性能分析,但通常需要重启应用或附加到运行的进程,而BTrace可以在不中断服务的情况下进行调试。 ### 5. 配合其他资源使用 - `README.md`、`...
总的来说,BTrace是一个强大的Java性能分析工具,它提供了动态字节码注入的手段,使得开发者能够实时监测和调试运行中的Java应用程序,从而更有效地进行性能优化和问题定位。在实际开发中,结合BTrace的使用,可以...
Java程序在运行过程中可能会遇到各种问题,如性能瓶颈、内存泄漏、线程阻塞等,这时,开发者需要有一种工具能够实时地对JVM进行监控和分析。Btrace就是这样一款强大的工具,它允许开发者在不重启Java应用的情况下,...
Btrace:java性能调优及问题追踪工具 Btrace:java性能调优及问题追踪工具
BTrace,全称为“Bytecode Tracing”,是一款强大的动态代码插桩工具,它允许开发者在运行时对Java应用程序进行性能分析和诊断。BTrace 1.3.9是其一个重要版本,特别针对JDK 1.8进行了优化,同时支持Maven编译构建,...
在Java开发领域,性能优化是不可或缺的一环,而BTrace作为一个强大的动态跟踪工具,可以帮助开发者实时监控和分析应用程序的行为。本文将详细介绍如何在jVisualVM上进行BTrace插件的离线安装,以便在无法在线安装的...
BTrace 是一个强大的、安全的、动态的Java应用程序诊断工具,它允许开发者在运行时对Java应用进行细粒度的监控和性能分析。BTrace利用了Java的动态代理机制(Java Agent)和ASM字节码库,能够在不中断程序运行的情况...
【标题】"btrace workbench" 是一个专为Java开发者设计的强大工具,它与jvisualvm结合使用,提供了深入的应用程序性能分析能力。BTrace(Business Trace)是一种动态跟踪工具,允许开发者在运行时对Java应用程序进行...
Btrace提供了一种动态跟踪Java应用程序的方法,可以在不中断服务的情况下,对代码执行路径进行监控和分析。这包括追踪方法调用、检测变量变化、记录日志等,从而快速定位代码中的性能瓶颈或者错误。由于它不依赖于...
总的来说,Btrace是一个强大的Java调试和监控工具,通过这个资源包,你可以轻松地在运行中的Java应用程序上实施动态跟踪,提高问题定位和性能优化的效率。然而,为了充分利用这些工具,你需要学习Btrace的语法和使用...
本文将介绍两款强大的Java在线问题排查工具——Btrace和Greys,它们能够帮助开发者在不重启服务的情况下,实时地跟踪和分析代码执行情况。 1. Btrace 是一个开源的Java诊断工具,它利用了Java的Instrumentation API...
BTrace作为Java性能分析的利器,其非侵入性和实时性给开发者带来了极大的便利。然而,由于其动态字节码修改的特性,使用时需谨慎,尤其是在生产环境中,要确保跟踪操作的安全性。正确理解和运用BTrace,可以帮助...
Btrace 是一款强大的Java应用程序诊断工具,它允许开发者在不修改或重启应用的情况下,实时监控和分析运行中的Java程序。这款工具的核心特性在于其无侵入性,对于繁忙的生产环境而言,这意味着可以在不影响系统正常...
BTrace是一款强大的Java诊断工具,专用于实时、安全地进行生产环境中的应用程序性能监控和故障排查。它的核心特性在于能够在不中断程序运行的情况下,动态插入代码进行跟踪和分析,这对于理解复杂的系统行为和定位...
Arths 可能集成了 BTrace 或其他类似的工具,以提供对 Java 应用的深入洞察,包括但不限于性能指标、异常追踪、线程分析等。 在实际应用中,BTrace 可以用于各种场景,例如: - **性能分析**:追踪方法的执行时间,...
BTrace,一个强大的Java诊断工具,其主要功能是在线无侵入地对生产环境中的Java应用程序进行动态跟踪和性能分析。它的实现原理主要依赖于四个核心组件:Java Agent、ASM、Java Instrument API以及Java Compiler API...
【btrace.jar】是一款强大的Java在线诊断工具,它允许开发者在不重启应用程序的情况下,实时地对Java程序进行动态追踪和分析。这个工具的核心价值在于它能够帮助我们在生产环境中无侵入地解决性能问题或者追踪特定的...
BTrace是一款强大的Java线上诊断和分析工具,它充分利用了Oracle HotSpot虚拟机的动态类替换功能,允许开发者在不重启应用程序的情况下,实时地添加或修改类的行为,特别是用于添加日志输出,以便于线上问题的调试。...
net-java-btrace-visualvm.nbm java visualvm btrace 插件
BTrace是一款强大的动态代码分析工具,允许开发者在运行时对Java应用程序进行安全、精确的性能调试和诊断。 【描述】"btrace_extend-master" 指示这个压缩包解压后可以直接部署到服务器上,用于执行BTrace命令。这...