3

Java Visual VMのメモリサンプリング機能を使用していますが、質問に答えることができません。

  1. なぜこれほど多くのインスタンスが作成されるのですか?

  2. これらのインスタンスとバイトの数が増え続けるのはなぜですか?

たとえば、次のように非常に単純なJavaプログラムを作成しました。

public class TestMemory{
    public static void main(String[] args) throws InterruptedException {
        System.out.println("Hello");
        Thread.sleep(60 * 60 * 1000);
    }
} 

そして、JavaVisualVMには611のクラスがあることがわかります。インスタンスの数は、25,000から50,000近くまで増加し続け、その後、約25,000にフォールバックします。インスタンスが減少する理由はGCが原因である可能性がありますが、プログラムで何もしていないのに、なぜこれらの数値がそれほど動的であるのかわかりません。

4

1 に答える 1