我知道没有"正确"的堆大小,但你在应用程序(应用程序类型,jdk,os)中使用哪个堆大小?
JVM选项-Xms
(初始/最小)和-Xmx
(最大)允许控制堆大小.什么设置在哪种情况下有意义?什么时候默认适当?
您必须尝试应用程序并查看其执行情况.例如,我曾经一直运行IDEA,直到我得到这个新工作,我在这个巨大的整体项目上工作.在编译整个项目时,IDEA运行速度非常慢并且经常丢失内存错误.
我做的第一件事就是将堆增加到1 gig.这摆脱了内存不足的问题,但仍然很慢.我也注意到IDEA经常冻结10秒钟左右,之后用过的内存被减半只是为了再次提升,这引发了垃圾收集的想法.我现在使用它与-Xms512m,-Xmx768m但是,我还添加了-Xincgc,以激活增量垃圾收集
结果,我得到了旧的IDEA:它运行平稳,不再冻结,从不使用超过600米的堆.
对于您的应用程序,您必须使用类似的方法.尝试确定典型的内存使用情况并调整堆,以使应用程序在这些条件下运行良好.但也让高级用户调整设置,以解决异常数据加载问题.