我有两种类型的对象的大规模应用程序:长生活(缓存)和短生活(请求 - 进程 - 响应).从理论上讲,使用这种类型的应用程序,我认为可以配置Young和Old空间,因此旧空间消耗是恒定的,因此没有Full GC.
我已经更改了newSize-maxNewSize参数,但是,旧堆继续上升,直到Full GC.每次完整GC后,消耗量降至20%(缓存占20%).出于某种原因,我的对象进入旧空间.我有两个嫌疑人为什么搬到旧区:
根据这篇文章:http://chaoticjava.com/posts/gc-tips-and-memory-leaks/它被告知你是否分配了大对象,那些直接转到旧空间.这是真的,如果是,是否有JVM Option参数可以为Young空间设置对象大小阈值?
如果我正确理解了该过程,则在移动到旧部分之前,对象将在To-From生存部分之间切换.是否有参数可以设置在移动到旧空间之前要完成To和From之间的切换次数?
还有其他提示吗?
谢谢,阿玛尔