
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
java编程开发语言是目前大多数人在学习软件开发技术的时候都会去学习的一个编程开发语言,而今天我们就通过案例分析来了解一下,java编程开发基础知识分享。
Java堆大小调整
G1在调整Java堆大小时遵循标准规则,使用-XX:InitialHeapSize作为小的Java堆空间,-XX:MaxHeapSize作为大的Java堆空间,-XX:MinHeapFreeRatio作为小的可用内存百分比,-XX:MaxHeapFreeRatio用于确定调整大小后可用内存的大百分比。G1收集器仅在执行重标记(Remark)和FullGC暂停期间考虑调整Java堆的大小。这个过程可以从操作系统释放内存或分配内存。
Young-Only阶段代调整
G1总是在下一个突变子阶段的正常年轻代回收结束时测量年轻代的大小。通过这种方式,G1可以满足使用-XX:MaxGCPauseTimeMillis和-XX:PauseTimeIntervalMillis设置的暂停时间目标,该目标基于对实际暂停时间的长期观察。它考虑到了同样规模的年轻代需要多长时间才能删除。这包括在回收过程中需要复制多少对象以及这些对象之间的互联程度等信息。
如果没有其他限制,那么G1可以在-XX:G1NewSizePercent和-XX:G1MaxNewSizePercent确定的值之间自适应地调整年轻代大小,以满足暂停时间的要求。
或者,可以使用-XX:NewSize和-XX:MaxNewSize分别设置年轻代的小值和大值。
注意:只指定后面这些选项中的一个,就可以将年轻代大小精确地固定为分别使用-XX:NewSize和-XX:MaxNewSize传递的值。这将禁用暂停时间控制。
空间回收阶段的代调整
在空间回收阶段,G1试图在一次垃圾回收暂停中大化在老年代中回收的空间量。年轻年代的大小设置为允许的小值,通常由-XX:G1NewSizePercent确定。
周期性的垃圾收集
如果由于应用程序不活跃而导致长时间没有垃圾收集,那么虚拟机可能会长时间保留大量未使用的内存,这些内存可以在其他地方使用。
为了避免这种情况,可以强制G1使用-XX:G1PeriodicGCInterval选项执行常规垃圾收集。此选项确定G1考虑执行垃圾回收的小间隔(毫秒)。
如果自以前任何垃圾收集暂停以来已经过去了这段时间,并且没有正在进行的并发循环,G1将触发额外的垃圾回收。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。