2

さまざまな問題のトラブルシューティングを行うためにシステムのスレッド ダンプを取得してきましたが、1 つ気づいたことは、良い時も悪い時も、スレッド ダンプには次のようなものがたくさんあるということです。

"TP-Processor59" - Thread t@915
   java.lang.Thread.State: RUNNABLE
    at java.lang.Class.getEnclosingMethod0(Native Method)
    at java.lang.Class.getEnclosingMethodInfo(Class.java:929)
    at java.lang.Class.getEnclosingClass(Class.java:1081)
    at java.lang.Class.getSimpleBinaryName(Class.java:1220)
    at java.lang.Class.getSimpleName(Class.java:1112)

ここで、構成システムが依存する getSimpleName() を多数呼び出します。しかし、私の質問は、なぜ彼らはいつもこの特定の方法に巻き込まれるのですか? これは Windows JVM、1.6.0_29、64 ビットです。

getSimpleName() は一般的に非常に高速な呼び出しであるべきだと思います。これはおそらく getEnclosingMethod0() が何らかの形で非常に遅いのでしょうか、それともネイティブ メソッドが何かをブロックしている可能性がありますか (もちろん、JVM スレッド ダンプには表示されません)。

4

1 に答える 1