public final class RuntimeCodeCacheCleaner extends Object implements RuntimeCodeCache.CodeInfoVisitor
CodeInfo
objects.
Furthermore, it also actively invalidates and frees code that has references to otherwise no
longer reachable Java heap objects.Modifier and Type | Field and Description |
---|---|
static Class<?>[] |
CLASSES_ASSUMED_REACHABLE
To avoid unnecessary deoptimizations, we need to assume that objects of the following classes
are reachable, even if they don't have any strong references:
SpeculationLog.SpeculationReason objects are embedded in the code and only needed when a
deoptimization is triggered.
SharedRuntimeMethod objects are sometimes used as artifical methods (e.g., for
adapter code) and are located in the frame info object constants.
|
Constructor and Description |
---|
RuntimeCodeCacheCleaner() |
Modifier and Type | Method and Description |
---|---|
<T extends CodeInfo> |
visitCode(T codeInfo)
Visit compiled code, using the provided access methods.
|
public static final Class<?>[] CLASSES_ASSUMED_REACHABLE
SpeculationLog.SpeculationReason
objects are embedded in the code and only needed when a
deoptimization is triggered.SharedRuntimeMethod
objects are sometimes used as artifical methods (e.g., for
adapter code) and are located in the frame info object constants.public <T extends CodeInfo> boolean visitCode(T codeInfo)
RuntimeCodeCache.CodeInfoVisitor
visitCode
in interface RuntimeCodeCache.CodeInfoVisitor