Proposal for additional fine tuning of the garbage collector
Motivation
Fine tuning of the garbage collector is needed for a large number of latency-sensitive applications.
Proposal
-
In the case of the copy-based GC, it would be helpful to add a live data threshold (e.g. -LXg to say trigger a major collection when reaching X GiB of live data and -LwY to wait at least Y seconds between threshold based collections) similar to the idle GC options. This is especially helpful when idle major collections are expensive and cause disruption during normal use, while factor-based collections may happen too late and cause disruption during spikes.
-
In the case of the non-moving GC, if new data is produced faster than it can be collected asynchronously, add a new interpretation to the -cX option: if the ratio of live to maximum -M heap limit is reached, switch instead to a blocking compaction to avoid heap overflows.