仅按标题中的指定。
我使用JMX进行了测试,并记录了其内存堆的使用模式。然后,我稍后将我的罐子文件重新汇总,然后再次研究其内存行为。结果是记忆模式略有不同。在这两种情况下,我都没有使我的垃圾收集器预先配置。因此,我现在想知道两个默认垃圾收集器是否在同一台计算机上具有相同的配置。
如果没有,我如何在不指定许多参数的情况下确保我的垃圾收集器是相同的?另外,如果不是GC config?
如果在同一台机器上运行相同的应用程序,则使用相同的JVM,堆和GC参数将相同。
人体工程学是在JDK 5.0中引入的一项功能,以尝试从GC调整中取出一些猜测。服务器级计算机(2个或更多核心和2个或更多GB的内存)将使用1/4的物理内存(最高1GB),用于初始和最大堆的大小(请参阅https://docs.oracle.com/Javase/8/docs/technotes/guides/vm/gctuning/ergonomics.html)。因此,不同的机器默认情况下可能具有不同的配置。
确切确切设置了哪些标志,请使用: java -XX:+PrintFlagsFinal -version
内存使用模式的差异只是应用程序的非确定性行为。即使使用完全相同的输入,我怀疑您是否会看到完全相同的内存行为,直到许多其他OS和硬件效果(缓存,核心亲和力等)