TD Bank, a leading Canadian bank, utilizes GCeasy, FastThread, and HeapHero products. Recently, Ram Lakshmanan, our architect, delivered a training session for their performance engineers in Toronto, focusing on a critical system review of a core application. The engineers showed enthusiasm and engaged actively during the training.
Uber Optimizes Garbage Collection Performance
Uber is facing significant performance issues due to increased traffic, including memory bottlenecks like long garbage collection pauses and memory leaks. Their engineering team shared insights on optimization strategies, employing tools like GCeasy to address problems. Notably, they identified a misconfigured thread causing excessive object creation through extensive manual analysis, highlighting the complexity of managing numerous threads.
DSquare Trading App Addressed GC Pauses
Dsquare is a specialized FX trading boutique excelling in short-term trading, leveraging algorithmic models in the foreign exchange market with daily volumes over $3 trillion. Jad Sarmo discusses the development of their high-performance, low-latency Java trading application, addressing challenges and optimizations, including the use of GCeasy for garbage collection performance.
Automobile Company Optimizes its GC Performance
A major automobile manufacturer significantly enhanced its middleware platform by optimizing garbage collection performance, achieving a 49.46% reduction in overall response time from 1.88 seconds to 0.95 seconds. This improvement was attained solely through adjustments to garbage collection settings, eliminating the need for code refactoring or costly changes.
Cruising to Savings: Uber’s Roadmap to Efficient Go Garbage Collection
Uber successfully saved 70,000 cores across 30 critical services by optimizing Go's Garbage Collection (GC) through a semi-automated tuning mechanism. This effort resulted in significant CPU utilization improvements, notably 65% in observability services and 30% in Uber Eats. GC tuning is essential for efficient resource management and application performance.
Optimizing Robotics application’s Performance!
This post shares an experience in optimizing a Java application controlling warehouse robots, addressing performance issues due to long Garbage Collection (GC) pauses. By analyzing GC logs, the team identified excessive heap size and the CMS algorithm as causes. Switching to the G1 GC algorithm successfully reduced pause times, improving overall application performance.
How Does String Deduplication Work in Java?
This article discusses improving application performance by optimizing String memory usage in Java. It explains String allocation methods, the benefits of String.intern(), and introduces String deduplication during garbage collection. The analysis highlights trade-offs between space and time efficiency, urging careful consideration before implementing optimizations based on specific application needs and metrics.
Spring RestTemplate to WebClient causes OutOfMemoryError
Spring Boot's migration from RestTemplate to WebClient enhances performance via concurrency and non-blocking I/O. However, it led to OutOfMemoryError due to insufficient direct buffer memory. By analyzing the application with yCrash and increasing the maximum direct memory size, the issue was resolved, allowing successful image uploads without crashes.
Java NIO – OutOfMemoryError
Java NIO allows high-performance non-blocking I/O, enhancing concurrency and efficiency. However, running a Spring Boot application with Java 11 led to frequent 'OutOfMemoryError' issues. Upgrading to Java 17 and increasing Direct Buffer Memory allocation improved performance, allowing for significantly more connections before errors occurred. Solutions include optimizing memory size or upgrading Java versions.
Shenandoah GC Tuning
Shenandoah GC enhances Java applications by minimizing pause times through concurrent garbage collection and region-based memory management. It is ideal for low-latency and large heap applications, offering various tuning parameters and modes to optimize performance. Effective analysis of garbage collection logs allows developers to fine-tune Shenandoah for their specific needs.
