课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
垃圾回收机制是程序员在学习java编程开发语言的时候需要重点掌握的一个编程开发知识,下面我们就通过案例分析来了解一下,java垃圾回收并行收集器的特点与应用。
并行收集器
并行收集器(也称为吞吐量收集器)是类似于串行收集器的分代收集器。串行和并行收集器之间的主要区别是,并行收集器有多个线程,用于加速垃圾回收。
通过命令行选项-XX:+UseParallelGC启用并行收集器。默认情况下,使用此选项,次要(minor)和主要(MajorGC)都将并行运行,以进一步减少垃圾回收开销。
并行垃圾收集器线程数
可以使用命令行选项-XX:ParallelGCThreads=<N>控制垃圾收集器线程的数量。
并行收集器中分代的排列
在并行收集器中,各代的排列方式是不同的。
并行收集器调优(ParallelCollectorErgonomics)
当使用-XX:+UseParallelGC选择并行收集器时,它支持自动调优方法,允许您指定行为,而不是分代大小和其他低级调优细节。
指定并行收集器行为的选项
大垃圾收集暂停时间:使用命令行选项-XX:MaxGCPauseMillis=<N>指定大暂停时间目标,这被解释为需要毫秒或更少的暂停时间;默认情况下,没有大暂停时间目标。
如果指定了暂停时间目标,则会调整堆大小和与垃圾收集有关的其他参数,以使垃圾收集暂停时间短于指定值。
可能并不总是能够达到所需的暂停时间目标。
这些调整可能会导致垃圾收集器降低应用程序的总吞吐量。
并行收集器目标的优先级
目标是大暂停时间目标、吞吐量目标和小占用空间目标,目标按照这个顺序实现:
先实现大暂停时间目标。只有在满足了这个要求之后,吞吐量目标才能实现。同样,只有在前两个目标已经实现之后,才会考虑内存大小目标。
并行收集器默认堆大小
除非在命令行中指定了初始堆大小和大堆大小,否则将根据计算机上的内存量计算它们。默认的大堆大小是物理内存的1/4,而初始堆大小是物理内存的1/64。
默认分配给年轻代的大空间是总堆大小的1/3。
并行收集器初始和大堆大小的规范
你可以使用选项和-Xmx指定初始堆大小和大堆大小。
如果您知道应用程序需要多少堆才能正常工作,那么可以将-Xms和-Xmx设置为相同的值。
如果您不知道,那么JVM将开始使用初始堆大小,然后增加Java堆,直到找到堆使用量和性能之间的平衡。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。