Search

GC easy – Universal Java GC Log Analyser

Tag

Garbage collection logs

Degradation in String Deduplication Performance in Recent Java Versions

This is an investigative piece on the performance of string deduplication in different versions of Java. The investigation compared Java versions 11, 17, and 21 and their ability to remove duplicate strings. It utilized a WebCrawler application and JMeter load testing to gather data. The findings revealed that Java 11 outperformed versions 17 and 21, eliminating 34.3% of duplicates in 1,264.442 milliseconds. However, newer versions showed a decline in performance, deduplicating fewer strings over longer periods of time.

How to analyze Node.js Garbage Collection traces?

Node.js applications may suffer from unresponsiveness due to long Garbage Collection pauses or memory leaks. Enabling GC traces with '--trace-gc' helps monitor memory usage and potential bottlenecks. This article details on how certain tools can provide graphs and metrics for easy interpretation, aiding in optimizing performance and memory management.

How Robotics app reduced GC pause time from 5 minutes to 2 seconds

The post discusses optimizing a Java application used for controlling warehouse robots, which faced performance issues due to long Garbage Collection (GC) pauses. By analyzing the GC log, it identified a large heap size and the CMS GC algorithm as culprits. Switching to the G1 GC algorithm reduced GC pauses significantly, enhancing application performance without major structural changes.

SaaS business CEO’s view on Garbage Collection

Sridhar Vembu, CEO of Zoho, inspires many with his success story in building a major SaaS business. He emphasizes the financial benefits of optimizing automatic garbage collection, which can save companies billions annually by reducing application pause times that hinder performance and inflate cloud costs, as shown by successes at Uber and an automobile company.

Serial GC Tuning

The Serial Garbage Collector (GC) is single-threaded, ideal for smaller applications and resource-limited environments. This post discusses tuning techniques for Serial GC, covering parameters like heap size, pause time, and tenuring threshold. Analyzing GC logs helps optimize performance. Overall, developers can configure Serial GC for efficient application management.

Shenandoah GC Tuning

Shenandoah GC enhances Java application's performance by concurrently managing garbage collection with application threads, aiming for low pause times. This is accomplished through region-based memory management and various tuning parameters. Ideal for low-latency, large heap, and highly concurrent applications, Shenandoah offers modes and heuristics for optimizing performance. Analyzing GC logs aids fine-tuning.

GraalVM vs OpenJDK GC Performance Comparison

This article compares the Garbage Collection (GC) performance of OpenJDK and GraalVM. GraalVM's concurrent, generational collector outperforms OpenJDK by exhibiting higher throughput (99.947%) and lower average pause times (450 ms vs. 2.5 secs). It concludes that GraalVM's GC mechanism is more efficient in managing memory, benefiting application performance.

Problems With Finalizer

The finalize method in Java, deprecated since Java 9, poses performance concerns by delaying garbage collection and increasing memory usage. Two-step cycles for objects with finalizers, like FinalizeableBigObject, slow down processes and can lead to OutOfMemoryErrors. Ultimately, efficient resource management should prioritize try-with-resources over finalizers to improve performance.

How Uber saved 70,000 CPU cores with GC tuning

Uber enhanced compute capacity efficiency by implementing Go GC tuning, saving 70K cores across 30 services. They used a self-referencing finalizer to reduce CPU overhead, achieving significant CPU utilization improvements, notably 65% in observability and 30% in Uber Eats. GC tuning is vital for memory management and optimizing application performance.

Up ↑