Talks

Abstract

Upgrading to a new Java version is often driven by the desire for new language features, or the need to stay current with security updates. In this talk, we show how moving to Java 25 became a turning point for fixing severe tail-latency and GC instability in a high-throughput production system at Picnic.

This session presents a real production case study where upgrading to Java 25 triggered a deeper rethink of JVM memory usage and garbage collection. Earlier trial with ZGC resulted in startup failures and worse tail latencies due to higher memory usage. Java 25’s Compact Object Headers enabled a counter-intuitive shift: shrinking the heap to re-enable Compressed OOPs and improve object density. Combined with targeted memory optimizations in code, it led to more predictable GC behavior and significantly stable latency.

Key takeaways
  • Practical mental models for JVM memory behavior
  • When large heaps hurt latency more than they help
  • Concrete techniques to reduce tail latency without adding hardware

Target audience
  • Intermediate to advanced Java developers
  • Backend engineers working on high-throughput systems
  • Platform engineers responsible for performance and reliability
Manish Askani
Picnic Technologies
Manish Askani is a Staff Engineer at Picnic Technologies, where he focuses on Operational Excellence in the Consumer domain. His work centers on improving production reliability, latency, and performance of high-throughput Java systems used by millions of users. Manish spends most of his time deep in JVM behavior, garbage collection and memory performance, translating low-level runtime mechanics into practical improvements for real production workloads. He has led multiple initiatives around incident reduction, performance stability, and deployment resilience and regularly works at the intersection of platform engineering and application architecture.