Search

Fast thread

Universal Java Thread Dump Analyzer

Category

Educational – Best Practises

Java class loading – performance impact!

java.lang.ClassLoader#loadClass() API is used by 3rd party libraries, JDBC Drivers, frameworks, application servers to load a java class into the memory. Application developers don’t use this API frequently. However when they use the APIs such as ‘java.lang.Class.forName()’ or ‘org.springframework.util.ClassUtils.forName()’, they... Continue Reading →

Java Hashtable, HashMap, ConcurrentHashMap – Performance impact

There are a good number of articles that articulate functional differences between HashMap, HashTable and ConcurrentHashMap. This post compares the performance behavior of these data structures through practical examples. If you don't have patience to read the entire post, here... Continue Reading →

Java UUID generation – Performance impact

Java developers tend to use 'java.util.UUID#randomUUID()' API, to generate a UUID (Universally Unique Identifier) number (i.e., 'b8bbcbed-ca07-490c-8711-5118ee0af2f9'). Under certain circumstances, using this API can affect your application’s availability. Let’s discuss this API in this post with a real-world example. How... Continue Reading →

Performance impact of java.lang.System.getProperty()

'java.lang.System.getProperty()' is a common API used by Java developers to read the System properties that are configured during application startup time. i.e. when you pass "-DappName=buggyApp" as your application's startup JVM argument, the value of the 'appName' system property can... Continue Reading →

Java threads – may not be memory effecient?

Java applications tend to contain hundreds (sometimes thousands) of threads. The majority of these threads are in WAITING, TIMED_WAITING (i.e., dormant) state, while only a small portion of the threads are actively executing lines of code. So, we were curious... Continue Reading →

What is Garbage collection log, Thread dump, Heap dump?

Java Virtual Machine (JVM) generates 3 critical artifacts that are useful for optimizing the performance and troubleshooting production problems. Those artifacts are: Garbage collection (GC) logThread DumpHeap Dump In this article let us try to understand these 3 critical artifacts,... Continue Reading →

Threads throwing exception

Threads that are throwing Exception or Errors should be investigated. Because those threads stack trace indicates the origin of the problem. Below is the stack trace of the thread that is throwing java.lang.OutOfMemoryError: Thread 0x3ff781e764e0 at java.lang.OutOfMemoryError.<init>()V (OutOfMemoryError.java:48) at java.lang.ClassLoader.defineClass1(Ljava/lang/String;[BIILjava/security/ProtectionDomain;Ljava/lang/String;)Ljava/lang/Class;... Continue Reading →

Powerful troubleshooting: Marrying Thread dumps and top -H

I told my manager that I like the title of this article. He said to me that’s not surprising, because I am still an eligible bachelor. No wonder I like the word “marrying” in the title. But for folks like... 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... Continue Reading →

Powered by WordPress.com.

Up ↑