I am glad someone is giving Azul competition here. Their products are ridiculously expensive. I hope Oracle also takes notice, great throughput is great, but sometimes latency bounds are also important.
How does profiling Java applications work with JIT. Should you wait until the code has been optimized before profiling, or these tools smart enough to realize that the performance of code changes as the application runs?
I think as soon as any method takes up a noticeable part of execution time, it has been optimized all the way by the Hotspot or whatever your JVM uses.
After all, you want to profile your app's hot spots ;-)