Java HotSpot虚拟机中无用存储单元收集

Java HotSpot虚拟机中无用存储单元收集

ID:37803540

大小:302.16 KB

页数:44页

时间:2019-05-31

Java HotSpot虚拟机中无用存储单元收集_第1页
Java HotSpot虚拟机中无用存储单元收集_第2页
Java HotSpot虚拟机中无用存储单元收集_第3页
Java HotSpot虚拟机中无用存储单元收集_第4页
Java HotSpot虚拟机中无用存储单元收集_第5页
资源描述:

《Java HotSpot虚拟机中无用存储单元收集》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、JavaHotSpot™虚拟机中无用存储单元的收集(GC)JohnCoomesTonyPrintezisSunMicrosystems公司演示目的帮助你理解无用存储单元的收集,以及它如何与JavaTM程序进行互操作,这样当你在设计、开发和配置应用程序时可以在充分了解信息的基础上作出选择1

2、JavaOne2003

3、Session3153演讲人情况•JohnCoomes是SunMicrosystems公司的资深工程师•目前研究HotSpot™虚拟机中的无用存储单元收集•已在Java™2平台的不同部分,以及它的标准版本方面工作了5年;在HotSpot方面工作三年•喜欢骑山地车1

4、JavaOne200

5、3

6、Session3153演讲人情况•TonyPrintezis是SunMicrosystems实验室Java™技术研究小组的成员•原来在苏格兰格拉斯哥大学计算机科学系教书•已从事GC方面的工作5年;编写了近乎并发的收集器的第一个版本•不喜欢骑山地车1

7、JavaOne2003

8、Session3153我们正在努力出售的东西…GC是你的朋友终结不是1

9、JavaOne2003

10、Session3153议程•什么是自动内存管理以及为什么进行自动内存管理•GC的特点•HotSpot中的GC•有利于GC程序设计•问与答1

11、JavaOne2003

12、Session3153什么是自动内存管理?•对象分配─新操作•

13、无用存储单元的收集(GC)─回收未用的内存─类的卸载─弱引用处理及终结─对象堆的布局应用程序对象堆GC1

14、JavaOne2003

15、Session3153为什么进行自动内存管理?•简化程序─消除对重新分配的需求─防止内存泄漏─简化数据类型接口─启用正确的封装•保证编程语言的安全─防止虚悬指针1

16、JavaOne2003

17、Session3153议程•什么是自动内存管理以及为什么进行自动内存管理•GC的特点•HotSpot中的GC•有利于GC的程序设计•问与答1

18、JavaOne2003

19、Session3153GC的设计目的•快速、快速、快速的分派•未用存储单元的及时回收•正在运行的应用程序的最短中断─

20、微小的、可预见的停顿•少量的系统开销(空间、时间)•可升级到大型对象堆1

21、JavaOne2003

22、Session3153GC的‘真相’•算法与策略的平衡─堆的大小vs.收集时间开销─停顿时间和应用程序的吞吐量•既然一种方法无法适合所有的……─提供选择─利用可调整的、可以自行调整的算法1

23、JavaOne2003

24、Session3153GC的特点•部分收集vs.完全收集•全部停止vs.并发•串行的vs.并行的1

25、JavaOne2003

26、Session3153部分收集vs.完全收集•部分收集单独收集堆的子区域+利用对象生存期和无用存储单元密度•每单位的GC工作回收更多的存储单元–必须追踪进入收集区的

27、引用•写屏蔽●对执行时间的微弱影响•JIT编译器必须予以配合堆已收集的未收集的1

28、JavaOne2003

29、Session3153部分收集vs.完全收集•完全收集每次收集整个堆–停顿时间变长•与堆大小成正比+无写屏障,执行更容易堆已收集的1

30、JavaOne2003

31、Session3153全部停止vs.并发•全部停止条件下的GC应用程序停止时完成全部GC工作+GC时对象图冻结–较长的停顿时间•并发式GC大多数GC在应用程序运行的情况下完成–GC时对象图变化•要求同步,更加复杂–占用空间更大(“浮动的无用单元”)+停顿较短1

32、JavaOne2003

33、Session3153串行的vs.并行的•串行的+

34、算法更简单–多余的CPU(>1)在GC期间空闲–GC占用固定时钟时间较长•并行的–要求同步,更为复杂+GC使用多个CPU+GC占用固定时钟时间较短1

35、JavaOne2003

36、Session3153议程•什么是自动内存管理以及为什么进行自动内存管理•GC的特点•HotSpot中的GC•有利于GC的程序设计•问与答1

37、JavaOne2003

38、Session3153HotSpot中的GC•快速的存储单元分配•部分收集─分代•全部停止,或者近乎并发1•串行的或者并行的11可用,但默认情况下不启用1

39、JavaOne2003

40、Session3153快速分配•新对象被分派到“托管单元中”─托管单元通常是本地

41、线程─大的对象可能被分配到别的地方•存储单元分配:修改单个指针─通常通过编译器内嵌存在•newjava.lang.Object()大约是10个本地指令•GC激活的存储单元快速分配1

42、JavaOne2003

43、Session3153HotSpot中全部停止式的GC•VM跟踪线程状态─运行编译过的字节代码─解释程序字节代码─运行本地代码─锁定等待•只有执行字节代码的线程停止─本地代码形式的线程继续运行•

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。