2013-04-17 43 views
8

请告诉我这些选项的目的。 谷歌上搜索我后认为: MinHeapFreeRatio道出“的空间中指定最低百分比将确保一个GC后,在堆内存免费” 和 MaxHeapFreeRatio告诉“不超过空间指定的百分比会在堆内存免费后,GC “[如果有超过指定的百分比的可用内存过剩,这些内存将返回到操作系统]是什么-XX目的:MinHeapFreeRatio和-XX:MaxHeapFreeRatio

当我试图用这两个选项作为两个值,即使有超过80个百分比的免费堆内存,它没有被释放回操作系统。

详细说明: 爪哇热点(TM)64位服务器VM(1.5.0_15-B04,混合模式) ParallelGC(也称为吞吐量收集这是在服务器类VM默认集电极) 我指定-Xms50M和-Xmx1000m如JVM参数 操作系统:Windows 7专业(8 GB存储器64位OS)

注:我只是试图与SerialGC太,那些最小和最大堆自由比选项被忽略了。

+0

我想这是设置一个百分比的范围,对吧?不应该都设置为10,而是设置为如下值:'MinHeapFreeRatio = 10'和'MaxHeapFreeRatio = 90',希望我正确理解它。 –

回答

2

的Java很少的内存释放回操作系统。一般来说,应用程序会随着时间的推移而使用更多的内存,你确定你的记忆太有限了吗?你确定你正在检查常驻内存,而不是虚拟内存大小,这将在你的情况下总是大约1.2 GB。

+1

是的,我使用VisualVM检查了内存使用情况。 我认为ParallelGC将忽略这些选项,它只是基于“暂停时间”和“吞吐量”目标动态调整年轻和老一代的尺寸。 https://blogs.oracle.com/jonthecollector/entry/it_s_not_magic –

相关问题