1

待つ方法があるのだろうか(秒)。Javaでメモリを測定してからガベージコレクションを呼び出し、しばらくしてからメモリを再度測定したいと思います。クォーツも考えましたが、複雑すぎて、スレッドと聞きました。スリープは正確ではありません..

ありがとう

4

3 に答える 3

2

睡眠を参照してください。

Thread.sleep現在のスレッドが指定された期間実行を一時停止します。これは、アプリケーションの他のスレッドまたはコンピュータシステムで実行されている可能性のある他のアプリケーションがプロセッサ時間を利用できるようにするための効率的な手段です。

于 2012-09-13T14:18:14.543 に答える
1

もう少し正確なものが必要な場合は、nanoTimeを使用できます。

   public static void sleepNanos (long nanoDuration) throws InterruptedException {
        final long end = System.nanoTime() + nanoDuration;
        long timeLeft = nanoDuration;
        do {
            if (timeLeft > SLEEP_PRECISION)
                Thread.sleep (1);
            else
                if (timeLeft > SPIN_YIELD_PRECISION)
                    Thread.yield();

            timeLeft = end - System.nanoTime();
        } while (timeLeft > 0);
    }
于 2012-09-13T14:20:55.043 に答える
0

Thread.sleep(1000);1秒間スリープします。
ただし、期待どおりにメモリを解放することはできません。GC を実行するには、 visualvmyourkit
などのプロファイラー ツールを使用します。Netbeans を使用している場合は、プロファイラーが組み込まれています。

于 2012-09-13T14:21:51.810 に答える