So, I have profiled my application using VisualVM.
I hit a hot spot about my interactions with MySQL. My first thoughts were that the hotspot showed the time that my application expected after I / O. But in the profiling report, VisualVM has two columns, "Time" and "Time (processor)." This term may not be used correctly, but I suggested that the self-service column (CPU) excludes I / O time. After more debugging, we came to the conclusion that the assumption was wrong and showed I / O time, since the access point was on java.net.SocketInputStream.read () from the MySQL driver and other I / O objects that should not cost any processor.
So my question is why does visualvm report SocketInputStream.read () as processor time?
source share