Sampling profilers are only useful when
- You are monitoring a runtime with a small number of threads. Preferably one.
- The call stack depth of each thread is relatively small (to reduce the incredible overhead in collecting a sample).
- You are only concerned about wall clock time and not other meters or resource bottlenecks.
- You have not instrumented the code for management and monitoring purposes (hence the stack dump requests)
- You mistakenly believe removing a stack frame is an effective performance improvement strategy whether the inherent costs (excluding callees) are practically zero or not
- You can't be bothered to learn how to apply software performance engineering day-to-day in your job
- ....