Virtual Threads – A Definite Advantage

Virtual Threads in Java, introduced in version 21, significantly enhance multi-threaded applications by reducing thread management overhead. This article explores their advantages over traditional platform threads through experimentation involving one million threads. Virtual Threads operate efficiently within heap memory, preventing OutOfMemoryError, and allow easier application scalability and performance improvements.

Java CMS GC Tuning

The Java Concurrent Mark & Sweep (CMS) algorithm provides low-latency garbage collection, effective for applications with dynamic memory needs. Although deprecated in JDK 9 and removed in JDK 14, it can still be utilized in earlier versions. This post discusses tuning techniques, advanced options, and performance analysis for optimal results.

Serial GC Tuning

The post provides an overview of the Serial Garbage Collector (GC) tailored for smaller-scale applications, focusing on its simplicity and effectiveness. It details scenarios for its use, tuning parameters for enhanced performance, and tools for analyzing GC logs. By adjusting key parameters, developers can optimize the Serial GC for their applications.

Java Collection Overhead

The Java Virtual Machine enables Java applications to be platform-independent while optimizing performance. One crucial component to understand, when considering performance, especially memory utilization, is how the Java Collections Framework, specifically the ArrayList, handles size and capacity. In this article,…

Problems With Finalizer

In Java, the finalize method has been part of the language since its early days, offering a mechanism to perform cleanup activities before an object is garbage collected. However, using finalizers has come under scrutiny due to several performance-related concerns.…

GraalVM vs OpenJDK GC Performance Comparison

In this article, we are going to  compare the performance of Garbage Collection(GC) of OpenJDK and GraalVM. The GraalVM is a popular open source JVM implementation in Java with a capability to run applications as native images. Apart from that, it…

Garbage Collection - unsung Hero

Garbage Collection – Unsung Hero

Garbage Collection is a facet often disregarded and underestimated, yet beneath its surface lies the potential for profound impacts on your organization that reach far beyond the realm of application performance. In this post, we embark on a journey to…

Untangling Deadlocks Caused by Java’s parallelStream

Concurrency is both the boon and bane of software development. The promise of enhanced performance through parallel processing comes hand in hand with intricate challenges, such as the notorious deadlock. Deadlocks, those insidious hiccups in the world of multithreaded programming,…

Java Suspended Thread states (BLOCKED, WAITING, TIMED_WAITING)

Java threads can be in 6 different states: NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATED. When a thread is suspended (i.e., unable to progress further), it will be one of these 3 suspended thread states: BLOCKED, WAITING, TIMED_WAITING. Let’s discuss these…