A profiling tool I want to try out—it seems almost magical—is Coz. It can estimate the effect of speeding up any line of code. It does this by pausing (!) other threads, so it gives a 'virtual' speed up for that line.
What's interesting is that this technique correctly handles inter-thread effects like blocking, locking, contention, so it can point out inter-thread issues that traditional profilers and flame graphs struggle with.
What's interesting is that this technique correctly handles inter-thread effects like blocking, locking, contention, so it can point out inter-thread issues that traditional profilers and flame graphs struggle with.
Summary: https://blog.acolyer.org/2015/10/14/coz-finding-code-that-co...
Video presentation: https://www.youtube.com/watch?v=jE0V-p1odPg&t=0m28s
Coz: https://github.com/plasma-umass/coz
JCoz (Java version): http://decave.github.io/JCoz/ and https://github.com/Decave/JCoz