我知道没有“正确”的堆大小,但您在应用程序(应用程序类型、jdk、操作系统)中使用哪种堆大小?
JVM 选项 -Xms
(初始/最小)和 -Xmx
(最大)允许控制堆大小。在什么情况下什么设置有意义?默认值什么时候合适?
最佳答案
您必须尝试您的应用程序,看看它的性能如何。例如,我过去总是开箱即用地运行 IDEA,直到我得到这份新工作,在这个巨大的整体项目中工作。 IDEA 运行非常缓慢,并且在编译整个项目时经常抛出内存不足错误。
我做的第一件事是将堆增加到 1 gig。这摆脱了内存不足的问题,但它仍然很慢。我还注意到 IDEA 经常卡住 10 秒左右,之后使用的内存减少了一半,然后再次增加,这触发了垃圾收集的想法。我现在将它与 -Xms512m、-Xmx768m 一起使用,但我还添加了 -Xincgc,以激活增量垃圾收集
结果,我找回了我的旧 IDEA:它运行平稳,不再卡住,并且从未使用超过 600m 的堆。
对于您的应用程序,您必须使用类似的方法。尝试确定典型的内存使用情况并调整您的堆以使应用程序在这些条件下运行良好。但也让高级用户调整设置,以解决普通数据负载之外的问题。
关于java - 您更喜欢哪种堆大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/83157/