资源描述:
《java垃圾回收》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、JavaHotSpot™虚拟机中的垃圾收集java.sun.com/javaone/sf选项及权衡PeterKesslerJonMasamitsuJohnCoomesSunMicrosystemshttp://www.sun.comSM1
2、2004JavaOneConference
3、Session1216改善Java™平台的性能选择垃圾收集器搞清JavaHotSpot™虚拟机中的各种垃圾收集方式,以及选用不同收集方式将带来的影响有趣的内容SM2
4、2004JavaOneConference
5、Session1216内容安排欢
6、迎来到“今日GC”介绍GC的新发展并行收集器并发收集器工效特性收集器的选择未来来自“我们的听众”的问题SM3
7、2004JavaOneConference
8、Session1216GC现状收集器的选择•串行收集器─复制年轻代─标记/清扫/缩并年老代•增量(train算法)收集器─年老代的增量收集•并行收集器─并行复制年轻代•主体并发收集器─并行复制年轻代─并发收集年老代SM4
9、2004JavaOneConference
10、Session1216介绍今天的嘉宾演讲人•JohnCoomes─并发垃圾收集•JonMasamitsu─
11、工效特性,并行垃圾收集SM5
12、2004JavaOneConference
13、Session1216垃圾收集有哪些新进展?•并行收集器─基于行为的调整─动态调整代的大小•主体并发收集器─并行性更高─动态调度─提升失败处理•增量收集器不再受重视─–Xincgc现在选择的是并发收集器•线程本地分配缓冲区─根据使用情况调整大小SM6
14、2004JavaOneConference
15、Session1216并行收集器的改进指定所期望的行为•暂停时间目标─所期望的最大暂停时间•吞吐能力目标─用于垃圾收集的时间比例•使足迹最小化─当其它目标都
16、已实现时•垃圾收集的时间限制─什么是“内存不足”?SM7
17、2004JavaOneConference
18、Session1216串行收集器CPU0CPU1CPU2CPU3串行年轻代串行标记-清扫用户线程-缩并串行垃圾收集器线程安全点SM8
19、2004JavaOneConference
20、Session1216并行收集器“吞吐能力问题”CPU0CPU1CPU2CPU3并行年轻代串行标记-清扫用户线程-缩并串行垃圾收集器线程并行垃圾收集器线程安全点SM9
21、2004JavaOneConference
22、Session1216并行收集器的
23、改进指定所期望的行为•暂停时间目标─所期望的最大暂停时间•吞吐能力目标─用于垃圾收集的时间比例•使足迹最小─当其它目标都已实现时•垃圾收集的时间限制─什么是“内存不足”?SM10
24、2004JavaOneConference
25、Session1216主体并发收集器“延迟问题”CPU0CPU1CPU2CPU3并初始标记并发重新标记并发清扫重置行年轻标记代用户线程垃圾收集器线程安全点SM11
26、2004JavaOneConference
27、Session1216主体并发收集器的改进•暂停期间并行性更高─年轻代扫描─引用对象处理(软引
28、用,弱引用等)•动态调度─年老代收集的开始─年老代收集期间的暂停•提升失败处理─更好地利用堆空间─较少的全收集SM12
29、2004JavaOneConference
30、Session1216内容安排欢迎来到“今日GC”介绍GC的新特性并行收集器并发收集器工效特性选择收集器未来来自“我们的听众”的问题SM13
31、2004JavaOneConference
32、Session1216并行收集器“吞吐量问题”•使应用程序有最长的可运行时间─减少垃圾收集的时间•没有暂停时间要求─或暂停时间要求较为宽松•举例:─后台处理─科学计算SM14
33、
34、2004JavaOneConference
35、Session1216要点:强调吞吐量的收集器并行收集器•并行年轻代收集─高效─可扩展性好•针对大型服务器的调整─2个到数十个CPU•在配有2个或多个CPU的机器上快于串行收集器•串行年老代收集SM15
36、2004JavaOneConference
37、Session1216要点:并行收集器吞吐量目标自动调整大小•吞吐量目标•吞吐量的测度─垃圾收集所用的时间─除垃圾收集之外所用的时间•为实现目标而增大代的大小─代较大,意味着两次垃圾收集之间的间隔较长─年轻代和年老代都增大•与不断变化
38、的应用程序行为相适应SM16
39、2004JavaOneConference
40、Session1216质疑:并行收集器吞吐量目标自动调整大小•为什么把堆设置为最大?把-Xmx和-Xms设为相同的较大值•应用程序行为有较快变化时怎么办?•编译时间会怎样?SM17
41、2004JavaOneConference
42、Session12