[发明专利]基于虚拟机的垃圾回收方法及装置有效
申请号: | 201510740849.7 | 申请日: | 2015-11-04 |
公开(公告)号: | CN106648882B | 公开(公告)日: | 2020-03-13 |
发明(设计)人: | 廖彬;靳国杰;高翔 | 申请(专利权)人: | 龙芯中科技术有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/455 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 马爽;黄健 |
地址: | 100095 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 虚拟机 垃圾 回收 方法 装置 | ||
本发明实施例提供一种基于虚拟机的垃圾回收方法及装置。该方法包括:在确定应用程序创建的新对象将第一存储空间存满后,将当前时刻第一存储空间以及第二存储空间中的所有活跃对象存储至第三存储空间中;在确定所有活跃对象均存储到第三存储空间后,清空第一存储空间以及第二存储空间;根据所有活跃对象所占的存储空间的大小,重置第二存储空间的大小以及第三存储空间的大小,并对第二存储空间以及第三存储空间进行交换处理。该方法可以提高堆空间的利用率,提高应用程序的性能。
技术领域
本发明实施例涉及存储技术,尤其涉及一种基于虚拟机的垃圾回收方法及装置。
背景技术
Java程序的内存管理由Java虚拟机完成。在应用程序执行过程中,如果应用程序的应用线程无法在Java堆中继续分配新对象,Java虚拟机就会触发垃圾回收,回收不再使用的内存,以便后续新对象的内存分配过程能够顺利进行。
复制垃圾回收算法作为垃圾回收算法中的一种,其实现过程主要为:将堆存储空间平均分成两部分,第一部分存储空间用于当前应用线程分配新对象,第二部分存储空间则作为预留存储空间,用于保存垃圾回收时的活跃对象。在第一部分存储空间存满时,虚拟机触发垃圾回收,第一部分存储空间中的所有活跃对象会被复制到第二部分存储空间中,而第一部分存储空间会被全部回收,再将第一部分存储空间与第二部分存储空间互换,以便下次垃圾回收使使用。虚拟机通过保留活跃对象并且回收非活跃对象占用的存储空间的方式,完成垃圾回收的工作,从而达到完成内存管理的目的。
然而,由于Java应用程序在运行过程中,大部分新创建的对象很快就会变成非活跃对象,因此在垃圾回收发生时,活跃对象的数目只占整个新生对象很小部分,如果预留存储空间与分配新对象的存储空间大小相同,则导致堆存储空间无法得到充分利用,分配新对象的存储空间有限,使得垃圾回收频率变大,应用程序的性能低。
发明内容
本发明实施例提供一种基于虚拟机的垃圾回收方法及装置,以提高堆空间的利用率,提高应用程序的性能。
第一方面,本发明提供一种基于虚拟机的垃圾回收方法,其中,虚拟机的堆空间包括用于存储活跃周期小于预设周期的对象的新生代存储区,所述新生代存储区包括用于存储应用程序创建的新对象的第一存储空间、用于保存上一次垃圾回收时存活的活跃对象的第二存储空间以及预留的第三存储空间,所述方法包括:
在确定所述应用程序创建的新对象将所述第一存储空间存满后,将当前时刻所述第一存储空间以及所述第二存储空间中的所有活跃对象存储至所述第三存储空间中;
在确定所有活跃对象均存储到所述第三存储空间后,清空所述第一存储空间以及所述第二存储空间;
根据所述所有活跃对象所占的存储空间的大小,重置所述第二存储空间的大小以及所述第三存储空间的大小,并对所述第二存储空间以及所述第三存储空间进行交换处理。
第二方面,本发明提供一种基于虚拟机的垃圾回收装置,其中,所述虚拟机的堆空间包括用于存储活跃周期小于预设周期的对象的新生代存储区,所述新生代存储区包括用于存储应用程序创建的新对象的第一存储空间、用于保存上一次垃圾回收时存活的活跃对象的第二存储空间以及预留的第三存储空间,所述装置包括:
确定模块,用于在确定所述应用程序创建的新对象将所述第一存储空间存满后,将当前时刻所述第一存储空间以及所述第二存储空间中的所有活跃对象存储至所述第三存储空间中;
清空模块,用于在确定所有活跃对象均存储到所述第三存储空间后,清空所述第一存储空间以及所述第二存储空间;
处理模块,用于根据所述所有活跃对象所占的存储空间的大小,重置所述第二存储空间的大小以及所述第三存储空间的大小,并对所述第二存储空间以及所述第三存储空间进行交换处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于龙芯中科技术有限公司,未经龙芯中科技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510740849.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种游戏数据的分析、处理方法和装置
- 下一篇:壁纸(卢浮盛典)