Search

GC easy – Universal Java GC Log Analyser

Tag

GC Algorithm

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.

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.

How to achieve high GC Throughput

Garbage Collection (GC) Throughput is important for Java applications. It shows how efficiently an application uses system resources. High GC throughput means fewer interruptions and better performance. Low throughput can lead to longer pauses and higher computing costs. Factors affecting GC throughput include performance issues, incorrect GC settings, and resource shortages. Addressing these factors helps optimize GC throughput and improve application performance.

In which region intern strings are stored?

The intern() function in Java's String class helps eliminate duplicate string objects, reducing memory usage by storing interned strings in the JVM's heap region. This post includes practical examples, performance observations from a sample program, and highlights the significance of enabling garbage collection logging for memory management insights.

How to do GC Log analysis?

Analyzing garbage collection (GC) logs offers benefits such as reduced pause times, lower cloud costs, and improved capacity planning. This post outlines the process of enabling GC logs, the ideal measurement duration and environment, and tools for analysis. Key tools include GCeasy and IBM's GC visualizer for effective optimization.

Detect proactively whether application’s memory is under-allocated

The post discusses the consequences of under-allocating memory in applications, such as degraded response times and OutOfMemoryError occurrences. It emphasizes proactively monitoring Garbage Collection behavior through logs to identify memory allocation issues. Analyzing patterns in GC logs can help distinguish between high object creation due to traffic spikes and potential memory leaks.

Overhead added by Garbage Collection Logging

Enabling Garbage Collection (GC) logs in applications can optimize pause times, improve response rates, predict outages, and lower costs. A study conducted on a Spring Boot application in AWS showed no significant overhead in CPU, memory usage, or response time with GC logging enabled, encouraging its use in production environments.

Up ↑