Search

GC easy – Universal Java GC Log Analyser

Tag

Java GC

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 capture Node.js Garbage Collection traces?

Garbage collection (GC) plays a crucial role in managing memory in Node.js. Efficient GC is essential for optimal performance, making it vital to trace GC events. This article covers the three main methods for tracing GC events: utilizing the '--trace-gc' flag, leveraging the v8 module for dynamic tracing, and utilizing the perf_hooks module.

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.

CMS GC algorithm removed from Java 14?

The Java Concurrent Mark & Sweep (CMS) algorithm, favored for its low-latency memory management, was deprecated in Java 9 and removed in Java 14 due to a lack of contributors for maintenance. Users are encouraged to transition to alternatives like G1, Shenandoah, or ZGC, ensuring thorough performance analysis before switching.

Java CMS GC Tuning

The Java Concurrent Mark & Sweep (CMS) garbage collection algorithm aims to minimize pause times by marking and sweeping memory concurrently. Despite its benefits, CMS has been deprecated since JDK 9 and removed in JDK 14. This post discusses tuning techniques, JVM parameters, and advanced options to optimize CMS performance for specific scenarios.

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.

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.

Up ↑