ParparVM Cuts Java App Memory from 98MB to 38MB by Tuning GC Trigger Threshold

Developers working on ParparVM, the ahead-of-time Java-to-C compiler used by the Codename One framework, investigated how Go's garbage collector manages memory to find improvements for their own runtime. Inspired by Go's approach to collection timing and heap allowances, they examined how much memory ParparVM permitted between garbage collection cycles. By lowering the minimum allocation threshold from 24MB, they reduced resident memory usage from 98MB to 38MB without meaningfully impacting throughput or latency. Attempts to dynamically scale the threshold to match the live object set were hindered by inaccurate internal counters that failed to capture the full live population. The team ultimately made the minimum floor configurable at build time, keeping the default at 24MB while continuing to evaluate the smaller setting across more workloads.
This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)
Log in to join the discussion and vote.
Log in