如何增加java中对象从年轻代移动到老年代堆空间的生存周期

问题描述 投票:0回答:1

我有一个 Spring Boot 应用程序开发,正在处理内存密集型进程,时间不超过 5 分钟。它将创建大量的对象,并在处理时间结束时被销毁。在此期间,这些对象从年轻代内存移至老年代,因为它在一定次数的 GC 周期中幸存下来。

我需要控制这一点,因为不需要在老一代内存中拥有未使用的内存引用对象。

有人可以帮助我如何配置 GC 参数,以便最小生命周期对象不应移动到老一代堆空间吗?

java spring heap-memory java-11 jvm-arguments
1个回答
0
投票

年轻代移动到老一代的周期取决于年轻代的大小可用性。您可以配置以下参数来执行此操作。

年轻代和年老代的大小可以通过

NewRatio
来控制。此外,您还需要为年轻代大小指定参数
NewSize
MaxNewSize

另一个参数

SurvivorRatio
可用于调整幸存者空间的大小。
例如,-XX:SurvivorRatio=4 将 eden 和 Survivor 空间之间的比率设置为 1:4。即,如果您的年轻一代的大小为 4,则对于 2 个幸存者空间,您各有 1 个空间(总共 2 个空间)。

© www.soinside.com 2019 - 2024. All rights reserved.