1 つの整数変数を持つ非常に単純なクラスがあります。変数 'i' の値を画面に表示してインクリメントし、スレッドを 1 秒間スリープさせます。このメソッドに対してプロファイラーを実行すると、新しい変数を作成していないにもかかわらず、メモリ使用量がゆっくりと増加します。このコードを約 16 時間実行した後、メモリ使用量が 4 MB に増加したことがわかりました (プログラムを開始したときは、最初は 1 MB でした)。私はJavaの初心者です。どこが間違っているのか、または新しい変数が作成されていないのにメモリ使用量が徐々に増加しているのはなぜですか? 前もって感謝します。
私は netbeans 7.1 とそのプロファイラーを使用してメモリ使用量を表示しています。
public static void main(String[] args)
{
try
{
int i = 1;
while(true)
{
System.out.println(i);
i++;
Thread.sleep(1000);
}
}
catch(InterruptedException ex)
{
System.out.print(ex.toString());
}
}
プログラム開始時の初期メモリ使用量: 1569852 バイト。
ループを 16 時間実行した後のメモリ使用量: 4095829 バイト