What is BTrace Overhead

BTrace docs mention that BTrace has virtually no downtime overhead. Does this mean that BTrace has only overhead and only when some probe is encountered and processed?

In addition, when a probe is being processed, a processor will be required for processing. But does this have any effect on the JVM memory or any other thing that might affect the processing of the original JVM process?

+6
source share
1 answer

The BTrace processor overhead is as follows:

  • actual probe code
    • in safe mode, the overhead that you can incur is minimal, except for getting timestamps - it can be really sluggish, depending on the OS)
    • When using unsafe mode, you can take your foot off - the overhead will depend on what you put in the probe handlers.
  • JMX , if applicable (using the annotated @Property attribute)

In terms of memory, BTrace tries to avoid any overhead. However, if you use aggregation, profiler, or custom collections, the amount of memory will increase according to the amount of data stored there.

In addition, BTrace adds some additional requirements to PermGen - overriding classes too often can drain resources.

+6
source

Source: https://habr.com/ru/post/893597/


All Articles