7.12.16 -XX:[+|-]HitachiExplicitMemoryMoveToTenuredFirst
-XX:[+|-]HitachiExplicitMemoryMoveToTenuredFirst changes the location where objects are to be moved during the release of Explicit memory blocks, to the Tenured area.
Description
-XX:[+|-]HitachiExplicitMemoryMoveToTenuredFirst specifies the location where objects are to be moved during the release of Explicit memory blocks.
- Prerequisite option
-
-
-XX:HitachiUseExplicitMemory
-
Syntax
-XX:[+|-]HitachiExplicitMemoryMoveToTenuredFirst
Specifiable values
Type: String
- -XX:+HitachiExplicitMemoryMoveToTenuredFirst
-
Sets the Tenured area as the location where objects are to be moved during the release of Explicit memory blocks.
- -XX:-HitachiExplicitMemoryMoveToTenuredFirst
-
Sets the New area as the location where objects are to be moved during the release of Explicit memory blocks.
Notes
If this option is enabled, the referenced object moves to the Tenured area when a release process is executed.
When the reference-source object is a temporary short-lived object, if you disable this option and move the referenced object in the Explicit memory block to the New area, you will be able to perform concurrent collection of the referenced object and the reference-source object during the next CopyGC. This action prevents an increase in the used size of the Tenured area when this option is disabled.
However, you must note the following points:
-
Increase of CopyGC frequency
When the Explicit memory block is released, the referenced object moves to the New area. Thus, the moved object uses the New area. As a result, the interval until the next CopyGC is shortened, which might result in a decrease in throughput and the accelerated aging of the object.
-
Circulation of objects moved to the Tenured area, between the New area and the explicit memory management area
If an object (such as a data definition common to applications) is referenced by objects in multiple Explicit memory blocks, the referenced object becomes a long-lived object. If this option is enabled, after the object moves to the Explicit memory block, when the release process of the Explicit memory block is executed, the object moves to and then remains in the Tenured area for the remainder of its life (for example, until the application is terminated).
On the other hand, if this option is enabled and the object moves to the New area when the release process of the Explicit memory block is executed, the object will move to another Explicit memory block when CopyGC is executed to the threshold value. As this process repeats, the object circulates between the New area and the Explicit memory management area, resulting in an increase in the overhead of the release processes of the CopyGC and Explicit memory block.