Call Stack Tree provides 3 wonderful benefits:
- One simplified view
- Performance Optimization
- Accurate Smoke Test
Let’s discuss them in detail in this article.
1. One simplified view
Thread dumps are the snapshot of all threads running in the application at given moment. Thread dump will have hundreds/thousands of application threads. It would be hard to scroll through every single line of the stack trace in every single thread. Call Stack Tree consolidates all the threads stack trace into one single tree and gives you one single view. It makes the thread dumps navigation much simpler and easier. Below is the sample call stack tree generated by fastThread.io.
Fig 1: Call stack Tree
You can keep drilling down to see code execution path. Fig 2 shows the drilled down version of a particular branch in the Call Stack Tree diagram.
Fig 2: Drilled down Call Stack Tree
Call Stack Tree shows you the class name, method name, and line of the code that has been executed and the number of threads that have executed the line of code.
Fig 3: A single element from Call Stack Tree
From the above element in the Call Stack Tree, you can identify that call() method in buggyCompanyCallable.java is executed by 9 threads.