Actions on OutOfMemoryErrors

Everyone has at least once seen a failing application due to OutOfMemoryError. This error happens because the application cannot allocate the required memory. The specific reason for this problem may differ depending on the severity and heap section affected. However, in any case, we would like to have some actions prepared for this. In this... Continue Reading →

Virtual Threads – A Definite Advantage

It's great to explore the world of Virtual Threads, a powerful feature in Java that promises to revolutionize multi-threaded applications. In this article, we'll delve into how Virtual Threads can enhance your application's performance and scalability, all while keeping thread management overhead very minimal. Let's embark on this journey to harness the full potential of... Continue Reading →

Java SpringBoot – Performance Analysis and Tuning

SpringBoot is a widely used framework for building Java-based web applications and maintains a significant presence in the world of enterprise software development. It powers large-scale microservices and standalone applications. Most SpringBoot applications have embedded web servers and follow a distributed architecture consisting of three main types of application components: Backend: API services Backend: Event... Continue Reading →

JAX London 2023 – TOP 5 JAVA PERFORMANCE PROBLEMS

Every year in October, JAX London is the go-to event for Java and Software Architecture enthusiasts! It is a four-day conference for cutting-edge software engineers and enterprise-level professionals. This year, at JAX London’s 2023 conference, our architect Ram Lakshmanan was invited to talk on the topic: “TOP 5 JAVA PERFORMANCE PROBLEMS”. This session explained about... Continue Reading →

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, we will concentrate on the overhead caused by lists that contain two or three elements.... Continue Reading →

Benefits of setting initial and maximum memory size to the same value

When we launch applications, we specify the initial memory size and maximum memory size. For the applications that run on JVM (Java Virtual Machine), initial and maximum memory size is specified through ‘-Xms’ and ‘-Xmx’ arguments. If Java applications are running on containers, it's specified through ‘-XX: InitialRAMPercentage’ and ‘-XX: MaxRAMPercentage’ arguments. Most enterprises set... Continue Reading →

All you need to know about System.gc()

In this article, we have attempted to answer the most common questions around System.gc() API call. We hope it may be of help. What is System.gc()? System.gc() is an API provided in java, Android, C# and other popular languages. When invoked it will make its best effort to clear accumulated unreferenced object (i.e. garbage) from... Continue Reading →

Up ↑