0

数時間実行する簡単なテスト プログラムを使用しています。

public static void main(String[] args)  {
    for (int i=1; i<500; i++) {
        run();
    }
}

public static void run() {
    new Thread(new Runnable() {

        @Override
        public void run() {
            while (true) {
                new String("Hello World");
            }
        }
    }).start();
}

PS または pmap を介してプロセスを監視すると、RSS 部分が増加しますが、jvisualvm はヒープが安定していると報告します。

すべての RSS anon マッピングを合計すると、時間の経過とともに増加しています。

Centos 5.7 x64 と Sun JDK 1.6.0_31 を使用しています。

RSS は時間の経過とともに増加する必要がありますか?

4

1 に答える 1

0

バックグラウンド タスクがより多くのコード/リソースをメモリに取り込むにつれて、RSS は時間の経過とともに増加する可能性があります。あなたの例では、それほど多くはないはずです。注: 別の JVM インスタンスで共有ライブラリを使用すると、その共有ライブラリがメモリに読み込まれ、RSS が増加する可能性があります。

通常、問題を示す最も単純な例を見つけるのが最善です。500 スレッドにする必要がありますか、それともコアの数だけにする必要がありますか? 使用中のスレッドが 1 つある場合に発生しますか? new Object()代わりにを作成するとどうなりますか? オブジェクトを作成せずに待っているとどうなりますか?

于 2012-02-21T16:49:27.460 に答える