大多数情况下对 Java 程序进行调优, 主要关注两个目标之一: 响应速度(responsiveness) 和/或 吞吐量(throughput)。
响应能力(Responsiveness):
响应能力就是程序或系统对一个请求的响应有多迅速. 比如:
-
程序UI响应速度有多灵敏
-
网站页面响应有多快
-
数据库查询有多快
吞吐量(Throughput):
吞吐量关注在一个特定时间段内应用系统的最大工作量。衡量吞吐量的指标/示例包括:
-
给定时间内完成的事务数.
-
每小时批处理系统能完成的作业(jobs)数量.
-
每小时能完成多少次数据库查询
G1特点:
-
可以像CMS收集器一样,GC操作与应用的线程一起并发执行
-
紧凑的空闲内存区间且没有很长的GC停顿时间.
-
需要可预测的GC暂停耗时.
-
不想牺牲太多吞吐量性能.
-
启动后不需要请求更大的Java堆.
G1 堆被分为大约2000个区. 最小size为1 Mb, 最大size为 32Mb.
参考:G1垃圾收集器入门