We are using the 'Method Hotspots' view in anger but have a few questions:
1) What is the sample rate on the CPU? (I've seen 10ms snapshots mentioned in other posts)
2) Is one sample the equivalent of taking a thread dump?
3) In the Execution Time Breakdown we see multiple categories that are beyond the typical thread states you see in a thread dump (NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATED). Instead we see: Code Execution, Lock Time, Wait Time, Disk I/O, Network I/O. Could explanations be given in how these are calculated?
Solved! Go to Solution.
In general, 1 sample is rather kind of cpu sampling not thread dump. It's executed on the CPU each 10ms. If there is option to assing such sampling to particular purepath, than you will see on purepaths some entries from autosensors (those that can be expanded) and Method hotspots option.
Number of samples means that during analysed timeframe particular method was available in x number of samples. This means that this method may be executed long or often, so it's worth to focus in context of analysis.
Code execution - execution of method, for example parsing data in loops (only one of many examples)
Lock Time - thread is locked for example when there is mq communications. Sometimes there is something like lock queue. Thread is locked until response come back from main queue.
Wait time - thread was suspended (wait / sleep) for example during waiting for response of WebRequest / Queue
Disk I/O - particular method was dealing with disk operation which was root cause of slowdown here
Network I/O - thread was waitng for response from network (WebRequest / DB Communication / Queue).