Summary
Obsolete the VM product option PretenureSizeThreshold
due to removal of corresponding functionality.
Problem
This flag controls the maximum size of an object that is allowed to be allocated in eden-space of the young generation. The rationale is that large objs should be allocated in old-gen directly to avoid the promotion overhead. This flag is exclusively used by Serial GC.
The default value of this flag is zero, which means any objs can be allocated in eden-space if there is free space. In other words, in the default case, this flag is a no-op.
However, figuring out the right value for this flag is often difficult, because it requires deep insight into the app allocation behavior. Additionally, certain large objs can be short-lived, so directly allocating them in old-gen means young-gc can't reclaim them any more, resulting into more heap usage.
Supporting this flag incurs some implementation complexity and it offers little benefit in real applications.
Solution
Remove the functionality and obsolete the VM product option PretenureSizeThreshold
, without any deprecation period.
Specification
Removing the following flag:
product(size_t, PretenureSizeThreshold, 0, \
"Maximum size in bytes of objects allocated in DefNew " \
"generation; zero means no maximum") \
range(0, max_uintx) \
- csr of
-
JDK-8366155 Serial: Obsolete PretenureSizeThreshold
-
- Open
-