If you want to learn about the architecture of the application, performance characteristics of the application, effectiveness of the engineering organization – lot of times (if not all the times), we will look at the Word documents, PowerPoint decks, Excel spreadsheets that have been put together by the engineers/managers/executives of that application. In these artifacts truth can be exaggerated, truth can be untold, truth can be misstated. In some cases, it can even contain lie. What do we mean by it?
- PowerPoint deck can state application is processing 3800 transactions/sec. But it won’t say whether to process these transactions, whether optimal computing power is used or overwhelming compute power is used. Overwhelming compute power translates to bigger bills from your cloud hosting provider.
- Excel spreadsheet can give a list of all the servers that are running in production. But it won’t state how many times those servers are restarted due to memory leaks in the application 🙂
- Word document can give average memory consumption. But it won’t tell how much memory is wasted because of poor programming practices. Easily, 20 – 30% of memory gets wasted because of allocated but unused data structures, over-allocated but underutilized data structures.
- PowerPoint deck can give response time distribution of key transactions in the application. But it won’t state how many of those transactions SLAs are jeopardized because of long-running garbage collection events.
If you can complement your study with Garbage Collection Logs, Thread dumps, and Heap dumps, you can get crystal clear picture of the application. Garbage collection logs, Thread dumps, and Heap dumps are generated by the run-time environment (i.e. machines) and not by humans. Their artifacts don’t contain any exaggeration; they speak the truth, in fact, they speak the pure truth in Nirvana. However, there are few challenges with these artifacts:
- Not readily available
- Not pretty to read
- Complex to analyze/understand
To address these challenges, you may consider using powerful tools such as GCeasy.io, fastThread.io, and heapHero.io, which can turnover complex dumps into insightful information. This is where you can see the elegance of truth in beauty.