4
非常に多くのExecutorServicesを使用してサービスを実行しています。なぜjProfilerはCPUサイクルを使用してUnsafe.park/unparkを表示しますか?
jProfiler 7.1(sampling、Runnable)を使用してサービスをプロファイリングすると、sun.misc.Unsafe.park + unparkは現在、ホットスポットのほとんどのCPU時間を使用している呼び出しであることがわかります。
http://i.stack.imgur.com/wT2Cj.jpg
これは不可解です。
パークとパーク解除はブロックする必要があります。したがって、CPUサイクルを使用しないでください(少なくとも少量)。 これはjprofilerのバグです(sun.miscパッケージに含まれているため検出できません)か、実際にはExecutorServiceフレームワークの使用に何か問題がありますか?
一部のスレッドを一時停止している可能性のあるデバッガが接続されている可能性はありますか? – oksayt
いいえ、デバッガは接続されていません。また、トレースが示唆しているように、ExecutorServiceのgetTask部分には、ほとんどの「時間」が費やされているだけです。 – R4zorax
jProfilerではこれは単にバグです。私は、ExecutorサービスのWorkerスレッドが実際にタスクを待っている間にサイクルを焼いていると信じています。 – R4zorax