To guarantee that the tracing actions are "read-only" (i.e., the trace actions don't change the state of the program traced) and bounded (i.e., trace actions terminate in bounded time), a BTrace program is allowed to do only a restricted set of actions. In particular, a BTrace class
can not create new objects.
can not create new arrays.
can not throw exceptions.
can not catch exceptions.
can not make arbitrary instance or static method calls - only the public static methods of com.sun.btrace.BTraceUtils class or methods declared in the same program may be called from a BTrace program.
(pre 1.2) can not have instance fields and methods. Only static public void returning methods are allowed for a BTrace class. And all fields have to be static.
can not assign to static or instance fields of target program's classes and objects. But, BTrace class can assign to it's own static fields ("trace state" can be mutated).
can not have outer, inner, nested or local classes.
can not have synchronized blocks or synchronized methods.
can not have loops (for, while, do..while)
can not extend arbitrary class (super class has to be java.lang.Object)
can not implement interfaces.
can not contains assert statements.
can not use class literals.
These restrictions could be circumvented by running BTrace in *unsafe* mode. Both the tracing script and the engine must be set up to require *unsafe* mode. The script must be annotated by *@BTrace(unsafe = true)* annotation and the engine must be started in *unsafe* mode.
分享到:
相关推荐
BTrace 支持 JDK 1.6 及以上版本,使得那些在较旧环境中运行的应用程序也能受益于这种强大的诊断能力。 **一、BTrace 的工作原理** BTrace 使用 Java Agent 技术,它可以在不改变原有代码的情况下,利用 JVMTI...
【标题】:“btrace支持jdk1.7 linux下使用” 【描述】:“btrace支持jdk1.7 linux下使用 非常好用哦 呵呵呵呵” 【知识点详解】 BTrace(全称:Bytecode Tracing for Java)是一款强大的动态追踪工具,专为Java...
它会在应用程序启动时加载,并根据客户端提供的BTrace脚本,在目标类的字节码上进行插入操作。 3. **btrace-boot-1.3.9.jar**:这个文件是BTrace的引导程序,负责启动和配置BTrace代理。它允许开发者在不重启应用...
3. Btrace与特定的JDK版本兼容,本资源包特别提到支持JDK 11。 总的来说,Btrace是一个强大的Java调试和监控工具,通过这个资源包,你可以轻松地在运行中的Java应用程序上实施动态跟踪,提高问题定位和性能优化的...
3. **安全机制**:BTrace有内置的安全策略,以防止不安全或破坏性的脚本执行。在生产环境中使用时,需要确保脚本经过充分测试并符合安全规范。 4. **运行BTrace**:通过命令行工具`btrace`运行BTrace脚本,指定要...
5. **可扩展性**:Btrace 支持与其他监控工具集成,例如日志记录框架、告警系统等,可以轻松地扩展其功能。 在 `btrace-release-1.3.11.3` 压缩包中,可能包含以下文件和目录: - `bin/`:包含 Btrace 的可执行...
Btrace就是这样一款强大的工具,它允许开发者在不重启Java应用的情况下,动态地添加探查代码(probe),从而跟踪并理解程序的运行状态。 **Btrace简介** Btrace是由Sun Microsystems开发的一个开放源码的Java运行时...
总之,BTrace的实现原理展示了Java平台的强大功能,尤其是对于动态字节码操作和运行时监控的支持。这种技术不仅可以用于BTrace这样的工具,也可以启发开发者们设计更多创新的解决方案,如自定义的AOP框架、性能分析...
5. **文档支持**: 包含的`README.md`、`LICENSE`、`COPYRIGHT`、`CHANGELOG.md`等文件为用户提供安装、使用、许可和更新信息。特别是`CHANGLOG.md`,记录了版本间的变更和改进,有助于了解不同版本的差异。 6. **...
BTrace 可用于动态跟踪正在运行的 Java 程序(类似于 OpenSolaris 应用程序和操作系统的 DTrace)。BTrace 动态地检测目标应用程序的类以注入跟踪代码(“字节码跟踪”)。致谢基于ASM由JCTools提供支持由hppcrt提供...
"示范项目"通常会提供清晰的步骤,帮助开发者理解BTrace的基本操作和高级特性。 【标签解析】 "Java"标签表明这个项目是用Java语言编写的,因此,BTrace的使用也是针对Java环境的。Java作为一种广泛应用的编程语言...
**BTrace 概述** BTrace 是一个强大的 Java 动态跟踪工具,它允许...在面对生产环境中的复杂问题时,结合 BTrace 和其他诊断工具(如 jstack、jmap 等),能够更深入地理解应用的运行状况,为故障排查提供有力支持。
例如,Tracer插件可以记录和分析应用程序的执行轨迹,为性能瓶颈的定位提供数据支持。MBeans插件则允许开发者通过MBean服务器访问和操作Java管理扩展(JMX),实现远程监控和管理。Visual GC插件可视化垃圾回收过程...
DTrace作为一种动态性能调试工具,在Solaris操作系统中有超过7万个预置的探测点(probe),并且支持用户自定义更多的探测点。DTrace使用了一种称为D语言的轻量级、解释型语言来创建探测器,这些探测器具有极低的开销...
BTrace API插件使得jVisualVM可以支持BTrace脚本的执行,方便实时查看应用程序的行为和性能指标。 2. **应用服务器管理插件(com-sun-appserv-management.nbm)** 这个插件专门用于管理和监控基于Sun Application ...
综上所述,Oracle不仅在其硬件产品线上拥有广泛的选项,而且通过提供最新的Oracle Solaris 11操作系统,以及全面的服务和支持策略,展示了其致力于为客户带来最佳用户体验的决心。无论是对于希望在关键任务环境中...
### Robotium Ant 构建脚本详解 #### 一、问题背景及解决方案 在使用Robotium结合Ant构建脚本的过程中,...尽管当前的方法存在一定的局限性,但随着技术的发展,未来的自动化测试框架有望提供更加灵活高效的支持。
文档建议通过***网站搜索并下载对应版本的jar包,包括btrace-boot.jar、btrace-client.jar、javax.jms.jar、jmxri-1.2.jar、jmxtools-1.2.jar和btrace-agent.jar等,并通过mvn install:install-file命令导入到Time...
代码级剖析工具,则可以通过分析代码执行的详细信息来帮助找出性能瓶颈,例如ContiPerf、BTrace等。 性能调优的知识不仅包括了工具的使用,还涉及性能基础理论知识。例如,了解常见接口性能压测、RPC框架、HTTPS...
在数据存储方面,规则信息存储于JVM中,避免直接访问数据库,从而减少了系统的I/O操作,并确保服务的无状态性,以支持水平扩展。 ### 结论 综上所述,美团酒旅营销平台的架构优化实践是一个涉及多方面知识和技术的...