我正在寻找关于在低延迟环境中如何最好地确定年轻代(相对于老年代)大小的论据。
我的测试结果表明,当年轻代相当大时(例如-XX:NewRatio <3),延迟最小,但是我不能将此与更大的年轻代应该需要更长时间进行垃圾收集的直觉调和。
应用程序在Linux 64位,jdk 6上运行。
内存使用量约为50兆字节的长期存在的对象在启动时被加载(=数据缓存),从那里开始只有(许多)非常短暂的对象被创建(平均寿命<1毫秒)。
有些垃圾回收周期需要超过10毫秒才能运行...与应用程序的延迟相比,这看起来确实不成比例,而应用程序的延迟最多只有几毫秒。