1

我只是想知道是否有办法等待(秒)。我在java中测量内存,然后我调用垃圾收集,一段时间后我想再次测量内存。我想到了石英,但它太复杂了,我听说 thread.sleep 不准确..

谢谢

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 秒。
但是你不会像你期望的那样释放任何内存。
使用诸如 visualvm 或 yourkit 之类的分析器工具执行GC。如果您使用的是 Netbeans,它具有内置分析器。

于 2012-09-13T14:21:51.810 回答