如何防止Java中的碎片?

时间:2016-06-18 01:00:46

标签: java performance

我接受了采访,并询问如何防止Java中的内存碎片。任何人都可以总结一下Java如何处理它吗?我读了一些文件但很复杂。

1 个答案:

答案 0 :(得分:2)

简短的回答是:你使用世代垃圾收集器。

除了大多数现代Java实现 1 默认使用分代收集器 。换句话说,你(程序员)不需要处理问题,因为它已经处理过了。

唯一可能遇到碎片问题的情况是,如果你错误地调整了低暂停收集器并且它已经回归到“停止世界”完整收集。此时,您可能正在使用非压缩收集器,并且可能会出现碎片。但是解决方案是调整调整(或应用程序或堆大小)以避免陷入这种情况。

1 - 一些非常古老的Java实现使用了原始的标记扫描收集器。但它们早已不复存在。