垃圾回收的优化方法、装置、终端设备及机器可读介质制造方法及图纸

技术编号:23604550 阅读:17 留言:0更新日期:2020-03-28 05:40
本申请公开了一种垃圾回收的优化方法、装置、终端设备及机器可读介质。该方法包括:在回收内存管理单元前,确定所述提前编译文件包含的多个第一对象是否引用了所述文件所在的指定区域以外的第二对象;在确定其中一个或多个第一对象引用所述指定区域以外的第二对象的情况下,记录所述第二对象的地址;确定所述指定区域、所述第二对象所在的区域为非回收区域。本申请提供的方案中,依据存放提前编译文件的指定区域的对象无需被垃圾回收的特点,在垃圾回收时不再遍历提前编译文件的指定区域以及与提前编译文件相关的区域,节约了提前编译文件运行后的垃圾回收的时间。

Optimization method, device, terminal equipment and machine readable medium of garbage collection

【技术实现步骤摘要】
垃圾回收的优化方法、装置、终端设备及机器可读介质
本申请涉及计算机领域,特别是涉及一种垃圾回收的优化方法和、装置、终端设备及机器可读介质。
技术介绍
动态编程语言是计算机科学中的一类高级编程语言,是计算机科学中将动态编程语言编译成与执行该动态编程语言的动态编程语言系统相关的本地机器码,从而可以在本地机器上直接执行提前编译生成的二进制文件。上述的二进制文件可以存储在计算机系统的内存中。但是,提前编译带来的问题在于,提前编译生成的二进制文件存储在内存中,加载后会导致内存占用率大大增加。针对这一问题,现有技术提出的垃圾回收机制可以对内存进行回收,垃圾回收机制试图将垃圾回收到系统,其中垃圾也就是当前运行程序不再使用的对象占用的内存。一般来说垃圾回收阶段的耗时和提前编译文件运行之后的对象占用的内存大小成正比。现有的垃圾回收方案会花费大量的时间用于检查内存中的对象是否为非可达对象,上述的非可达对象是指从程序运行时访问的根对象出发进行遍历时的不可达对象。当判断为非可达对象,可以释放这些非可达对象占用的内存。因此,动态编程语言在提前编译本文档来自技高网...

【技术保护点】
1.一种垃圾回收的优化方法,其特征在于,包括:/n在回收内存管理单元前,判断文件包含的多个第一对象是否引用了所述文件所在的指定区域以外的第二对象,其中所述指定区域位于所述内存管理单元中;/n在确定其中一个或多个第一对象引用所述指定区域以外的第二对象的情况下,记录所述第二对象的地址;/n确定所述指定区域以及所述第二对象所在的地址为非回收区域。/n

【技术特征摘要】
1.一种垃圾回收的优化方法,其特征在于,包括:
在回收内存管理单元前,判断文件包含的多个第一对象是否引用了所述文件所在的指定区域以外的第二对象,其中所述指定区域位于所述内存管理单元中;
在确定其中一个或多个第一对象引用所述指定区域以外的第二对象的情况下,记录所述第二对象的地址;
确定所述指定区域以及所述第二对象所在的地址为非回收区域。


2.根据权利要求1所述的方法,其特征在于,所述文件为提前编译文件。


3.根据权利要求1所述的方法,其特征在于,记录所述第二对象的地址之后,所述方法还包括:
在回收所述内存管理单元的情况下,依据所述第二对象的地址确定所述第二对象的子对象;
确定所述第二对象的子对象所在的地址为非回收区域。


4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
遍历所述内存管理单元中的其他对象,判断所述其他对象是否包括非回收对象。


5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
回收所述内存管理单元中的所述非回收对象所在的区域以外的其他区域。


6.根据权利要求1所述的方法,其特征在于,所述判断所述文件包含的第一对象是否引用了所述文件所在的指定区域以外的第二对象,包括:
分别判断所述文件包括的多个第一对象的指针是否指向所述指定区域以外的区域;
在确定所述指针指向所述指定区域以外的区域的情况下,确定所述第一对象引用了指定区域以外的第二对象。


7.根据权利要求1所述的方法,其特征在于,所述确定所述文件包含的第一对象是否引用了所述文件所在的指定区域以外的第二对象,包括:
在对所述文件中的第一对象的地址进行修改时,判断修改后的第一对象的地址是否位于所述指定区域以外的区域;
在确定修改后的第一对象的地址位于所述指定区域以外的区域情况下,确定所述第一对象引用了指定区域以外的第二对象。


8.根据权利要求2所述的方法,其特征在于,所述方法还包括:
根据源程序生成编译数据;
将所述编译数据链接至内存管理单元;
依据链接至内存管理单元中的编译数据生成提前编译文件。


9.根据权利要求2所述的方法,其特征在于,所述回收内存管理单元前包括:
在将源程序对应的提前编译文件加载至内存管理单元的指定区域的过程中,和/或,
运行源程序的过程中。


10.根据权利要求3所述的方法,其特征在于,所述依据所述第二对象的地址确定所述第二对象的子对象的步骤包括:
以所述第一对象中指向所述第二对象的指针作为根节点,遍历获得所述第二对象的子对象。


11.一种垃圾回收的优化方法,其特征在于,包括:
判断文件包含的多个第一对象是否引用了文件所在的指定区域以外的第二对象;
在确定其中一个或多个第一对象引用所述指定区域以外的第二对象的情况下,记录所述第二对象的地址;
确定所述指定区域以及所述第二对象所在的地址为非回收区域。


12.根据权利要求11所述的方法,其特征在于,所述文件为提前编译文件。


13.根据权利要求11所述的方法,其特征在于,所述记录第二对象的地址之后,所述方法还包括:
依据所述第二对象的地址确定所述第二对象的子对象;
确定所述第二对象的子对象所在的地址为非回收区域。


14.根据权利要求11所述的垃圾回收方法,其特征在于,所述文件中的多个第一对象的被调用频率高于第一阈值;所述多个第一对象引用所述指定区域以外的第二对象的频率低于第二阈值。


15.一种垃圾回收的优化装置,...

【专利技术属性】
技术研发人员:余超君曹闻世金一华
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1