[发明专利]基于Java虚拟机的并发垃圾收集器的调度器无效
申请号: | 201010595927.6 | 申请日: | 2010-12-20 |
公开(公告)号: | CN102023896A | 公开(公告)日: | 2011-04-20 |
发明(设计)人: | 杨珉;张源;周寻;王迪;臧斌宇 | 申请(专利权)人: | 复旦大学 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 上海正旦专利代理有限公司 31200 | 代理人: | 陆飞;盛志范 |
地址: | 200433 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 java 虚拟机 并发 垃圾 收集 调度 | ||
技术领域
本发明属于Java虚拟机垃圾回收技术领域,具体涉及一种基于Java虚拟机的并发垃圾回集器的调度器。
背景技术
随着Java等高级编程语言的兴起,如何合理的利用内存成为了为各高级语言提供环境支持时最关键的考虑因素之一。作为内存利用的主要手段,垃圾收集技术在系统安全和资源管理方面扮演着越来越重要的角色。
随着现代应用程序使用内存量增大、对象数量增多,以及消减“停止世界”垃圾收集所造成的停顿严重影响了应用程序的响应时间,并发的垃圾收集(Concurrent GC)出现了。该技术使垃圾收集器可以在应用程序线程执行的情况下进行垃圾收集,即垃圾收集器和应用程序线程是并行执行的。通过测试,并发垃圾收集技术较之“停止世界”垃圾收集有明显的运行效率提升,所以这个概念开始为越来越多的人所接受。
然而对于并发垃圾收集器何时被触发就成了一个问题:因为如果垃圾收集发生在系统内存还很空余的时候,就没有充分利用系统内存资源并且造成垃圾收集的频率过高,反而会影响应用程序性能;如果发生在系统内存已经比较紧张的时候,那系统堆内存就很可能在并发垃圾收集完成前被耗尽,这样就迫使垃圾收集器进行“耗尽处理”,需要被迫把应用程序停下来,这样无疑就增加了应用程序的停顿时间。尤其对于内存需求量大的程序,并发垃圾收集的调度方式对其运行的稳定性和效率都会有显著的影响。所以如何恰如其分的找出这个GC触发的时间点变得十分关键。当然,对于常规的垃圾收集技术(如“停止世界”垃圾收集),好的调度方式也能明显改善垃圾回收器的运行效率。
发明内容
本发明的目的在于设计一种能使并发垃圾收集器在合适的时间点被触发,以便提升垃圾收集器乃至整个程序运行效率的,关于并发垃圾收集器的调度器,并使用调度器对垃圾收集线程进行动态调度,从而更有效的利用系统资源。
本发明主要通过动态地对当前应用程序的运行情况进行分析,让垃圾收集过程能在合适的时间点触发。在垃圾收集器的实现中,我们把当前堆内存空间占用量,应用程序分配内存速度等因素都记录下来,以计算的方式估计出垃圾收集器的合适触发点。
首先定义理想的GC触发时间点,即在垃圾收集器的跟踪处理全部完成后,清理处理尚未开始前系统的内存资源正好完全耗尽。但是显然的,由于并发垃圾收集器是和应用程序同时执行的,程序运行的不确定性决定了并发垃圾收集器达到理想GC触发点是不可能的,不过我们还是可以通过评估的方式使调度器选定的GC触发点尽量的接近这一理想点。
在本发明中,调度器需要记录的系统的信息主要包括堆的总体大小M0、当前堆(Heap)内的内存消耗情况M1、当前应用程序的内存消耗的平均速率V1,以及当前垃圾收集器跟踪处理的平均速率V2。而最理想的情况是当垃圾收集的跟踪处理需要的时间t1和应用程序最后耗尽系统内存资源的时间t2相同。根据上述条件,我们可以得到以下三个等式:
t1 = t2; ①
t1 = M1/V2; ②
t2 = (M0 – M1)/V1;; ③
根据以上三个等式,我们就可以计算出最佳的GC触发点,即每当系统的内存消耗到M2时,[M2 = M0*V2/(V1 + V2)],就应该触发垃圾收集器进行工作,因为这样在垃圾收集的跟踪处理结束时,系统的内存正好被耗尽,即得到完全的使用。也就是说,在理论上讲这样能尽可能的逼近最优的GC触发点。然而在实际运行时,由于并发程序的不确定性,这样的设置很可能会让系统内存资源在GC跟踪处理尚未结束时就耗尽。这时一旦系统资源耗尽,垃圾收集器就要被迫停止应用程序来处理,这样反而会使应用程序的运行效率减低。调度器用一个内存使用上线M*来代替堆的总大小M0来解决这个问题。经过实际的测试,我们的调度器用堆总大小的90%来做内存使用上线,
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于复旦大学,未经复旦大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010595927.6/2.html,转载请声明来源钻瓜专利网。