If this option is enabled, the reference object moves to the Tenured area when the release process is executed.
If the reference source object is a temporarily short-lived object, this option is disabled and the referenced object in the Explicit memory block is moved to the New area to enable concurrent collection with the reference source object during the next copy garbage collection. This action prevents an increase in the used size of the Tenured area when this option is disabled.
You must note the following points:
- Increasing CopyGC frequency
If the Explicit memory block is released, the referenced object moves to the New area and the moved object uses the New area. As a result, the interval until the next garbage collection might reduce causing throughput decrease and speed up in the ageing process of the object.
- Among the objects moved to the Tenured area
If there is an object (For example, data definitions of common applications) referenced from objects of Explicit memory block repeatedly in New area and Explicit memory management area, then this is a long-lived object. If this option is enabled, the object is moved to the Explicit memory block, and when the release process of the Explicit memory block is executed, it moves to the Tenured area and continues to exist there for its rest of the life (such as application termination).
However, if this option is enabled, the object moves to the New area when executing the release process of the Explicit memory block, and here, if the copy garbage collection is executed up to the threshold value, the object is moved to some other Explicit memory block. On repeating this process, the object is circulated between the New area and the Explicit memory management area, resulting in an increase in the overheads of the release process of the copy garbage collection and the Explicit memory block.