首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止JVM在使用G1收集器时将堆释放回操作系统。

防止JVM在使用G1收集器时将堆释放回操作系统。
EN

Stack Overflow用户
提问于 2016-09-07 01:17:06
回答 1查看 113关注 0票数 2

我想使用最新的G1垃圾收集器,但是我在使用它时遇到了内存分配错误的情况。我相信这是因为它正在将内存释放回操作系统,然后操作系统不允许JVM在请求时将其取回,因为CMS收集器不会发生这种情况。我正在运行的特定服务器在CMS收集器上一直运行良好(除了一些不太理想的GC暂停),只要我将其移动到G1,它在运行大约6个小时后就会遇到这些分配错误,并且JVM存在。

目前还不清楚是否有可能防止G1收集器发生这种情况,但我希望社区中的某个人能给出答案。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2016-09-09 05:17:36

-XX:MaxHeapFreeRatio=100应该阻止它缩小堆的大小。

也就是说,如果这真的修复了jvm崩溃,那将是一个更深层次的问题。要么机器上有足够的内存来处理来自应用程序的所有分配请求,要么没有,如果你让JVM保持贪婪,那么其他的东西将会受到影响。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39354522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档