java - BTrace 的开销是多少

标签 java jvm trace btrace

BTrace 文档中提到 BTrace 在空闲时几乎没有开销。这是否意味着 BTrace 仅在满足某些探测并正在处理时才有开销?

此外,当处理 Probe 时,它​​会占用一些 CPU 来进行处理。但它对 JVM 内存或任何其他可能影响原始 JVM 进程处理的事情有任何影响吗?

最佳答案

BTrace 添加的 CPU 开销如下:

  • 实际探测代码
    • 在安全模式下,除了获取时间戳之外,您可能产生的开销很小 - 它可能非常缓慢,具体取决于操作系统)
    • 当使用不安全模式时,你可以自由地开枪——开销将取决于你在探针处理程序中放置的内容
  • JMX 处理,如果适用(使用 @Property 注释属性)

在内存方面 BTrace 尽力避免任何开销。但是,如果您使用聚合、探查器或自定义集合,内存占用量将根据您存储在那里的数据量而增长。

此外,BTracePermGen 提出了一些额外的要求 - 过于频繁地重新定义类可能会导致 permgen 耗尽。

关于java - BTrace 的开销是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6831224/

相关文章:

java - 我如何检查该条目是否已存在于表中或 servlet 中

java - 关于3DES的ECB的加密算法

jvm - 对象什么时候符合 DTO 的资格?

c++ - 为每个源文件单独设置跟踪级别的技术

java - 一般来说,为 Tomcat REST 服务配置合理的最大线程数限制,还是将其设置为有效的无限值,哪个更好?

java - 如何查看java进程的cpu使用情况

c++ - JNI C++ 调试技术?

c# - 在 C# 控制台应用程序中禁用跟踪,包括第三方引用

c# - 加载跟踪监听器属性

java - 通过 Ansible 安装 Jenkins 时发现 Java 版本不正确