【发布时间】:2015-07-03 03:12:30
【问题描述】:
我有一个 JVM 进程,其中转储了最大 1024 MB 堆大小的核心。(Linux 上的 OpenJDK 7)
当我使用 Yourkit Java Profiler 10.0.6 分析核心转储文件时,我发现进程在内存不足时仅使用 803 MB 堆。
似乎两个 Survivor 堆使用了 2/9 的堆(或保留)。
我在 Windows 7 上使用 JDK 7 进行了测试,jvisualvm(带有 Visual GC 插件)显示一个 Survivor 大小是 Eden 大小的 1/3。
参数为:java -Xms512M -Xmx1024M -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:MaxGCPauseMillis=10000 -XX:+UseCompressedOops
但是当我在网上搜索时,它说默认的幸存者大小是伊甸园大小的 1/8。
在我的测试中找不到 1/3 的原因。
【问题讨论】:
标签: java garbage-collection jvm