-
Enhancement
-
Resolution: Fixed
-
P3
-
14
-
b08
JFR allocates Java objects during normal operation. It's not many objects, but they do show up during allocation profiling, and they could trigger a GC in an application written to not allocate.
The place where most of the allocation occurs (excluding object allocated during startup) is in Ultils.getHandler(Class) in the jdk.jfr.internal package. It's not possible to cache information about the field due to memory leaks, so the field has to be looked up everytime JFR needs to map an event class to an event handler. This happens at least once every chunk
This can be avoided by writing the lookup in native.
The place where most of the allocation occurs (excluding object allocated during startup) is in Ultils.getHandler(Class) in the jdk.jfr.internal package. It's not possible to cache information about the field due to memory leaks, so the field has to be looked up everytime JFR needs to map an event class to an event handler. This happens at least once every chunk
This can be avoided by writing the lookup in native.