Yourkit如何衡量在unsafe.park本机方法上花费的时间?

时间:2015-04-13 06:59:50

标签: java profiling yourkit

我知道Yourkit会测量像Thread.sleep()这样的方法的挂起时间,但是那个unsafe.park本机方法呢?波纹管是采样设置:

  

walltime = java.io.RandomAccessFile:readBytes(byte [],int,int)   walltime = java.io.RandomAccessFile:read()   walltime = java.io.RandomAccessFile:write(int)   walltime = java.io.RandomAccessFile:writeBytes(byte [],int,int)   walltime = java.net.SocketInputStream:socketRead0(java.io.FileDescriptor,byte [],int,int,int)   walltime = java.net.SocketOutputStream:socketWrite0(java.io.FileDescriptor,byte [],int,int)   walltime = java.lang.Thread:sleep(*)

     

sampling_period_ms = 20

似乎unsafe.park()没有使用walltime,因此它必须是CPU时间。根据Yourkit文档,CPU时间是CPU花在此方法上的实际时间,而不仅仅是方法进入和退出之间的时间。

Yourkit表明花了很多时间在park()方法上,但我不认为CPU花了很多时间在park()方法上。 你能确认一下吗?感谢。

1 个答案:

答案 0 :(得分:4)

默认情况下,YourKit探查器不显示Unsafe.park()。 Profiler代理测量时间,但UI不显示它。要更改此设置,请在yjp.ini中指定-Dyjp.zero.time.methods = false并重新启动探查器UI。