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 2024 conference, our architect Ram Lakshmanan was invited to talk on the topic: “How to Troubleshoot 9 Types of OutOfMemoryError”. Even though at surface... Continue Reading →
World’s First Interactive Graph to Visualize Objects in Memory
HeapHero introduces an interactive heap object chart, allowing users to visualize memory objects in a graphical format for the first time. This feature simplifies data comprehension and offers interactive exploration, making it easier to analyze the largest objects in heap memory. Users can navigate the chart, view actual data, and examine object references with ease, enhancing the overall user experience.
How to solve OutOfMemoryError: Unable to create new native threads
This content covers one of the 9 types of java.lang.OutOfMemoryError: 'Unable to create new native threads'. It explains the causes, possible solutions, and ways to troubleshoot this error. The post includes a sample program to simulate the error and offers advice on capturing and analyzing thread dumps.
How to Solve OutOfMemoryError: Permgen Space
This post looks at the 'java.lang.OutOfMemoryError: Permgen space' issue, explaining its causes, solutions, and how to diagnose it. It discusses JVM memory regions, dynamic class creation, potential fixes, and troubleshooting with heap dumps. The goal is to help readers fully understand this common Java memory error.
How to Solve OutOfMemoryError: GC Overhead Limit Exceeded
In this post, we explored the 'java.lang.OutOfMemoryError: GC overhead limit exceeded', a common challenge for Java developers. We delved into its causes, including increased traffic volume and memory leaks, as well as potential solutions such as fixing memory leaks and increasing heap size. Troubleshooting tips, including capturing and analyzing heap dumps, were also discussed to equip developers in conquering this issue.
String Deduplication in Java
In this article, we’ll learn how to improve the performance of the applications that tend to use most of the space due to extensive usage of Strings. There’s no need to store more than one instance of immutable objects in our heap, and String is a good example. Object Allocation Let’s briefly refresh the information... Continue Reading →
Optimizing the Capacity of a HashMap
Many of us know that allocating more memory than we need may negatively affect the performance of our application. Thus, creating the Lists using a constructor that takes a capacity may make a significant difference. However, this optimization step might not be so straightforward while using Maps. In this article, we’ll learn how to identify... Continue Reading →
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 →
