java配置openjdk
通过在OpenJDK社区中提出一项计划,Java的G1垃圾收集器将受益于更高的吞吐量和减少的CPU使用量。
题为“ G1的吞吐后写入障碍”的JDK增强建议草案(JEP)将使收集器在禁用并发优化的情况下使用吞吐量优化的障碍,从而以某些工作负载的延迟为代价获得更好的吞吐量。对延迟不敏感。
该计划将通过新的JVM标志-XX:-G1UseConcRefinement
,这将关闭并发优化并允许G1使用“吞吐量写后屏障”。 G1UseConcRefinement
,默认情况下将启用G1UseConcRefinement
,而使用-XX:-G1UseConcRefinement
将提高G1的吞吐量并减少CPU使用率。 简化的写屏障的长度将短得多,从而提高了缓存命中率。 此模式将减少处理脏卡和JIT编译器的编译工作量。 此外,该模式将通过收缩记忆的集而不使用每线程的脏卡队列来减少内存占用。
目前,G1的引用后写障碍比复杂的并发标记扫描收集器的写障碍要复杂得多。 这种复杂性很大程度上是由于对并发优化的支持,该并发优化将收集暂停中的某些扫描工作移至应用程序并发完成。 优化机制在执行期间会产生明显的开销。
该提议不会让JVM确定何时禁用并发优化和优化障碍。 禁用并发优化时,该提议也不会限制其他G1功能的可用性,例如字符串重复数据删除。
java配置openjdk