Micro-profiling java code (or any "interpreted" language) is not the same as profiling statically compiled code (something like C++). The JVM is dynamically managing the memory, as well as JIT'ing...