java垃圾收集执行<(主要收集:mark and sweep> every time it does a <minor collection:scavenge>

标签 java garbage-collection

我有两个应用程序 (JVM),每个应用程序都具有相同的设置,并且每个应用程序都使用默认的垃圾收集器。

它们分配的最小和最大内存均为 16 GB。

一个应用程序的行为符合我的预期。当它进行次要收集(清理)时,它将 Activity 对象复制到幸存者空间。

其他应用程序不会将任何对象复制到幸存者空间。每次它进行一次次要收集(清理)时,它也会进行一次主要收集(标记和清除)。

我能想到的唯一原因是幸存者空间在次要收集(清理)期间被填满。

有什么想法吗?或者关于如何诊断行为的想法?

最佳答案

我会尝试删除您拥有的所有设置,以便获得绝对最小值,并且不太可能在设置之间出现奇怪的交互

尝试一下

-Xmx16g -XX:+UseConcMarkSweepGC

并使用jstat监视它

关于java垃圾收集执行<(主要收集:mark and sweep> every time it does a <minor collection:scavenge>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18342034/

相关文章:

javascript - AngularJS - $scope.$new() 创建的作用域何时被删除。垃圾收集器或 Angular 会处理它吗?

java - 这是一个多好的做法呢?

变量超出范围时的 JavaScript 垃圾回收

javascript - 垃圾收集函数中的对象数组

java - 如何在启动 PlayStore 之前决定应用程序名称

java - 尝试在空对象引用上调用虚拟方法 'android.content.Context android.content.Context.getApplicationContext()'

java - 一种从同一个类的构造函数中获取方法中的变量的方法?

Java RegEx for CSV 5 到 11 位数字列表

java - 如果 OSGi 包使用类加载器,我如何检测它的运行时库?

memory - 如何让我的服务器(用 Golang 编写)不会耗尽内存?