JEP proposed to target JDK 11: 318: Epsilon: An Arbitrarily Low-Overhead Garbage Collector

Aleksey Shipilev shade at
Wed Jan 17 10:15:42 UTC 2018

On 01/17/2018 11:12 AM, Roman Kennke wrote:
> Am 17.01.2018 um 11:03 schrieb Andrew Dinn:
>> On 17/01/18 09:43, Aleksey Shipilev wrote:
>>> How very unpoetical :) Epsilon has the origin story for its name, see the JEP. Most people,
>>> including prospective users, know this feature under "Epsilon" and some expressed the love for the
>>> name. So, as long as there is no overwhelming amount of strong opinions against it, I'd keep the
>>> name as is.
>> "With arbitrarily large TLABs and arbitrarily large heap, the latency
>> overhead can be described by an arbitrarily low positive value, hence
>> the name."
>> Much as I relish poetry in engineered artefacts I am willing to accept
>> it as optional (now, as to elegance, that's another matter). However, I
>> agree with Aleksey that this case is more than just poetry trumping the
>> prosaic. The name declares a significant property of epsilon, affirming
>> that GC overheads can be removed for specific uses by suitable (hw and
>> sw) configuration but, unlike NoGC, making no claim that they can be
>> simply ignored. Oh, also ... poetry!
> Why not also add -XX:+UseNoGC as alias for -XX:+UseEpsilonGC ? :-)

I think it would unprecedented to have aliases for exactly the same GC implementation?

But tell you what, if we rename to -XX:+UseNoGC, this obviously tells the users what is the
consequence of using the collector. So, the part of JEP that has to "Expectations" that guard from
accidental enabling with experimental/diagnostic flag stops being that relevant. Therefore,
-XX:+UseNoGC can and should be available in product builds under product option! :)


More information about the jdk-dev mailing list