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(*)
サンプリング期間_ミリ秒=20
unsafe.park() は walltime を使用していないようだったので、CPU 時間である必要があります。Yourkit のドキュメントに基づくと、CPU 時間は、メソッドの開始から終了までの時間だけでなく、CPU がこのメソッドに費やした実際の時間です。
あなたのキットは、park() メソッドに多くの時間が費やされていることを示しましたが、CPU が park() メソッドに多くの時間を費やしたとは思いません。これについて確認していただけますか?ありがとう。