BTrace的开销是多少?

San*_*dal 6 java trace jvm btrace

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

此外,在处理Probe时,需要一些CPU来进行处理.但它是否会对JVM内存或任何其他可能影响原始JVM进程处理的事情产生影响?

JB-*_*JB- 6

BTrace添加的CPU开销如下:

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

在内存方面,BTrace尽力避免任何开销.但是,如果使用聚合,分析器或自定义集合,则内存占用量将根据您在其中存储的数据量而增加.

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