Java might get a new garbage collector that can be the best for performance testing. Named Epsilon GC, the project proposal is aimed at delivering lowest runtime performance overhead possible by using linear allocation of memory.
OpenJDK contributor Aleksey Shipilev has authored the draft for the Epsilon GC proposal. The draft describes the project as an arbitrarily low overhead garbage (non)-collector. Shipilev, who works at Red Hat, guarantees bounded allocation limit and minimum runtime performance overhead through the planned garbage collector.
“Epsilon GC works by implementing linear allocation in a single contiguous chunk of allocated memory. This allows a trivial lock-free TLAB (thread-local allocation buffers) issuance code in the GC, which can then reuse the lock-free within-TLAB allocation handled by existing VM (virtual machine) code,” the proposal describes the latest development.
One of the notable features of the proposed Java garbage collector that it does not introduce any manual memory management features in Java or JVM.
According to the draft, any common garbage collection testing would not be suitable for Epsilon but, the collector would be helpful for performance testing. The project can also be useful for functional testing.
Epsilon GC is touted to offer last drop performance benefits for ultra performance sensitive applications. Developers need not worry about memory allocation or memory footprint of the app. Moreover, interface testing of a virtual machine would be another important test case for the garbage collector.
If the proposal for Epsilon GC is approved, we can hope to see almost garbage free applications written in Java.