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 is bottom line: When you confront with the decision of whether to use HashMap or... Continue Reading →
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 →
“Learn yCrash” series
The industry has seen cutting-edge Application Performance Monitoring tools and infrastructure monitoring tools. These monitoring tools are great at answering the question: 'What is the problem?'' but not, Why does the problem happen? yCrash attempts to answer this question. It captures 360-degree artifacts from your technology stack such as Garbage collection logs, thread dumps, heap dumps,... Continue Reading →
Garbage Collection tuning success story – reducing young gen size
When you tune Garbage collection performance, you are not only improving Garbage collection pause time but also the overall application's response time and reducing cloud computing cost. Recently we helped to tune the Garbage collection behavior of a popular application. Just by making a minor change, it resulted in a dramatic improvement. Let's discuss this... Continue Reading →
Let’s crash the applications! – Confoo 2022
ConFoo Montreal is a multi-technology conference for developers. This year , they have conducted the program to exchange knowledge and ideas from speakers all over the world. Our Architect Ram Lakshmanan was invited to give a talk on the topic: "Let's crash the applications!" In this session, following topics have been discussed: code snippets that... Continue Reading →
16 artifacts to capture when there is a production problem -Montreal 2022
ConFoo Montreal is a multi-technology conference for developers. Our Architect Ram Lakshmanan has been invited there to present on the topic "16 artifacts to capture when there is a production problem", which has secured 5th place among 155 sessions. Production problems are tricky to troubleshoot if proper diagnostic information isn’t captured. In this session, 16... 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 →
7 habits of highly effective Performance Troubleshooters! – All Day Devops Conference
The World's Largest 6th Annual All Day DevOps conference held on October 28th 2021. Our architect Ram Lakshmanan was invited there to present a webinar on the topic 7 habits of highly effective Performance Troubleshooters! Below is the deck shared in the conference which explains, how to forecast the problems?, what to do when the... Continue Reading →
Detect proactively whether application’s memory is under-allocated
When the application's memory is under-allocated, it will result in the following side-effects: a. Transactions response time will degrade b. CPU consumption will spike up c. OutOfMemoryError will be thrown Only when OutOfMemoryError is thrown, most of us start to look at our application's memory settings. This is like only when a patient goes to... Continue Reading →
Is today’s microservice more bloated than yesterday’s monolith?
I am slightly hesitant to write this post, as it might attract some criticism. Nevertheless, I told myself there is nothing wrong with sharing my point of view (even though it might not be well accepted). I would like to share my personal experience regarding yesterday's Monolithic and today's Microservice architecture in this post. Yesterday's... Continue Reading →