The article differentiates between Java profilers and memory analyzers, outlining their purposes and typical use cases. Memory analyzers focus on heap data to identify memory leaks or optimize usage, while profilers assess overall performance. Various tools like HeapHero and yCrash help troubleshoot Java applications effectively, enhancing resource efficiency and performance.
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 →
Simulation und Fehlerbehebung von Deadlocks in Kotlin – Bahnbrechende Deadlocks
We would like to extend our thanks to Entwinkler.de JavaMagazin for translating and publishing our article ‘Simulating and troubleshooting deadlocks in Kotlin’ in the German language. It is an honor to have our work published in a print magazine, that too in German language. Here is the translated German version of the article: ‘Simulation und... 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 →
7 JVM arguments of Highly Effective Applications
At the time (March 2020) of writing this article there are 600+ arguments that you can pass to JVM just around Garbage collection and memory. If you include other aspects, total JVM arguments count will easily cross 1000+. 😊. It's way too many arguments for anyone to digest and comprehend. In this article, we are... 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 →
