Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何防止Java中的碎片?_Java_Performance - Fatal编程技术网

如何防止Java中的碎片?

如何防止Java中的碎片?,java,performance,Java,Performance,我有一次采访,有人问我如何防止Java中的内存碎片。有人能总结一下Java是如何处理它的吗?我读过一些文档,但它非常复杂。简单的回答是:您使用的是分代垃圾收集器 除了大多数现代Java实现1默认使用分代收集器之外。换句话说,你(程序员)不需要处理这个问题,因为它已经被处理过了 您可能会遇到碎片的唯一情况是,如果您对低暂停采集器进行了错误调整,而它又退回到执行“停止世界”完整采集。此时,您可能正在使用非压缩收集器,碎片可能随之出现。但解决方案是调整调优(或应用程序,或堆大小)以避免陷入这种情况 如

我有一次采访,有人问我如何防止Java中的内存碎片。有人能总结一下Java是如何处理它的吗?我读过一些文档,但它非常复杂。

简单的回答是:您使用的是分代垃圾收集器

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

您可能会遇到碎片的唯一情况是,如果您对低暂停采集器进行了错误调整,而它又退回到执行“停止世界”完整采集。此时,您可能正在使用非压缩收集器,碎片可能随之出现。但解决方案是调整调优(或应用程序,或堆大小)以避免陷入这种情况

如果你想了解更多关于垃圾收集器工作的信息,这里有关于这个主题的完整教科书。各种文章和已发表的研究论文深入介绍了各种Java收集器

我看过一些文件,但很复杂

是的。成为一名专家是一项艰苦的工作



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

这个标题和你的问题有什么关系?你什么都没做。JVM可以做到这一点。太宽了。@EJP。我早就知道了。我试图理解Java是如何防止内存碎片的。谢谢