BTrace is a safe, dynamic tracing tool for Java
A profiler is a programming tool used to track and analyse the performance of a software program.
|Overhead far less noticeable||
"In my experience btrace overhead is far less noticeable than any profiler depending on activity of course - if you want to trace execution of all methods this will be expensive no matter what"
from question "Profiler for Java which [almost] does not slow the profiled code"