[发明专利]一种使用寄生对象管理对象堆的方法和装置有效
申请号: | 201310537587.5 | 申请日: | 2013-11-04 |
公开(公告)号: | CN103559076A | 公开(公告)日: | 2014-02-05 |
发明(设计)人: | 陆舟;于华章 | 申请(专利权)人: | 飞天诚信科技股份有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开一种使用寄生对象管理对象堆的方法和装置,通过使用寄生对象标记对象堆中的空闲空间,并根据寄生对象在对象堆中为待创建对象申请空间,能够有效地管理对象堆中的空闲空间,提高对象堆的空间利用率;在执行完删包或删应用操作后,以及在检测到java卡应用程序调用与垃圾回收对应的预设API后,仅需要执行一个空操作,而不再需要通过移动对象堆中的已创建对象进行垃圾回收,减少了对已创建对象的移动次数以及移动对象带来的时间消耗,提高了Java卡虚拟机的工作效率,并在一定程度上达到磨损平衡。 | ||
搜索关键词: | 一种 使用 寄生 对象 管理 方法 装置 | ||
【主权项】:
一种使用寄生对象管理对象堆的方法,其特征在于,所述寄生对象用于标记所述对象堆中的空闲空间,包括地址字节和容量字节,所述地址字节用于表示所述寄生对象的后一个寄生对象的地址,所述容量字节用于表示所述寄生对象所标记的空闲空间的大小,Java卡虚拟机的系统信息中存储有所述对象堆中的第一个寄生对象的地址;所述Java卡虚拟机需要在所述对象堆中创建非寄生对象时,执行以下操作:S1、所述Java卡虚拟机读取所述对象堆中的第一个寄生对象,将所述第一个寄生对象作为当前寄生对象;S2、所述Java卡虚拟机判断当前寄生对象所标记的空闲空间是否小于待创建对象所占用的空间,如果是,则执行步骤S3;否则,执行步骤S10;S3、所述Java卡虚拟机判断所述对象堆中是否存在当前寄生对象的后一个寄生对象,如果是,则执行步骤S4;否则,执行步骤S5;S4、所述Java卡虚拟机将当前寄生对象的后一个寄生对象,作为更新后的当前寄生对象,并返回步骤S2;S5、所述Java卡虚拟机将所述对象堆中的所有空闲空间进行合并,根据合并后的空闲空间创建对应的寄生对象,判断所述合并后的空闲空间是否小于所述待创建对象所占用的空间,如果是,则将创建的寄生对象的地址作为所述对象堆中的第一个寄生对象的地址保存到所述系统信息中,结束流程;否则,执行步骤S6;S6、所述Java卡虚拟机读取当前寄生对象的地址字节,将读取到的结果作为所述对象堆中的第一个寄生对象的地址保存到所述系统信息中;S7、所述Java卡虚拟机从当前寄生对象的地址开始,为所述待创建对象申请空间,获取申请空间后的剩余空间;S8、所述Java卡虚拟机判断所述剩余空间是否大于寄生对象所占用的空间,如果是,则执行步骤S9;否则,结束流程;S9、所述Java卡虚拟机从所述剩余空间的首地址开始,创建第一寄生对象,将所述第一寄生对象的地址作为所述对象堆中的第一个寄生对象的地址保存到所述系统信息中,结束流程;S10、所述Java卡虚拟机从当前寄生对象的地址开始,为所述待创建对象申请空间,并对当前寄生对象的前一个寄生对象,和/或所述系统信息中存储的所 述对象堆中的第一个寄生对象的地址进行更新。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于飞天诚信科技股份有限公司,未经飞天诚信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201310537587.5/,转载请声明来源钻瓜专利网。