Search

GC easy – Universal Java GC Log Analyser

Category

Java Garbage Collection

Comparing Java GC Algorithms: Which One is Best?

As a Java engineer, picking the right GC algorithm is key for application performance. Options include Serial, Parallel, CMS (deprecated), G1, Shenandoah, ZGC, and Epsilon. Each one has unique features and suits different situations. Use a flowchart to help choose the best algorithm based on your performance goals and heap size. Always conduct thorough performance testing before making a switch.

What is Java’s default GC algorithm?

The default Java Garbage Collection algorithm depends on your JVM vendor, Java version, and class of JVM. For OpenJDK, the default algorithms are Serial GC for Client-Class Machines and Parallel GC for Server-Class Machines. Other options include CMS GC, Shenandoah GC, ZGC, and Epsilon GC. Choose the right algorithm for your application.

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.

String Deduplication in Java

This article discusses optimizing application performance by managing String allocations in Java. It explains how to avoid excessive memory use through techniques like String literals, the String.intern() method, and the Java String deduplication feature. The importance of proper parameter settings and performance evaluation is emphasized for effective memory management.

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.

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.

Up ↑