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 internally call this 'java.lang.ClassLoader#loadClass()' API. Frequent usage of this API amongst different threads at runtime... 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 →

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 does  'java.util.UUID#randomUUID()' API works? java.util.UUID#randomUUID() API internally uses 'entropy' in the operating system to generate... Continue Reading →

How to do GC Log analysis?

Analyzing garbage collection log provides several advantages like: Reduces GC pause time, reduces cloud computing cost, predicts outages, provides effective metrics for capacity planning. To learn about the profound advantages of GC log analysis, please refer to this post. In this post let's learn how to analyze GC logs? Basically, there are 3 essential steps... Continue Reading →

Interesting Garbage Collection Patterns

As the author of GCeasy - Garbage collection log analysis tool, I get to see few interesting Garbage Collection Patterns again & again. Based on the Garbage collection pattern, you can detect the health and performance characteristics of the application instantly. In this post, let me share few interesting Garbage collection patterns that have intrigued... 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 be read by invoking the 'java.lang.System.getProperty()'. Example: public static String getAppName() { String app =... Continue Reading →

Powered by WordPress.com.

Up ↑