我正在测试一些 JDK,需要多次触发垃圾回收。我怎样才能在一个简单的程序中轻松做到这一点?示例将非常有帮助。谢谢你。
问问题
891 次
3 回答
3
有关垃圾收集的精彩讨论,请参见此处。您可以要求运行它(如先前的答案所述),但这不是保证,因此您不应对调用做出过多假设。您最好的选择是多次创建和销毁新对象。为了让它们被销毁,在一个块中创建它们并再次关闭它。也许是这样的:
for(int i = 0; i < MAX; ++i) {
{
Integer i = new Integer(0);
}
}
您可以从外部监控内存使用情况吗?
于 2012-07-26T20:13:27.573 回答
2
您可以使用System.gc()
来请求垃圾收集
在您的问题的背景下,这个SO 讨论可能很有趣
于 2012-07-26T20:03:13.730 回答
1
从Oracle 文档使用System.gc()
public static void gc()
运行垃圾收集器。调用 gc 方法表明 Java 虚拟机花费精力回收未使用的对象,以便使它们当前占用的内存可用于快速重用。当控制从方法调用返回时,Java 虚拟机已尽最大努力从所有丢弃的对象中回收空间。
调用 System.gc() 实际上等效于调用:
Runtime.getRuntime().gc()
于 2012-07-26T20:04:11.693 回答