一种管理对象的方法以及装置与流程

文档序号:35451443发布日期:2023-09-14 08:04阅读:36来源:国知局
一种管理对象的方法以及装置与流程

本技术实施例涉及计算机,并且更加具体地涉及一种管理对象的方法以及装置。


背景技术:

1、合理的内存占用与释放是提高电子设备性能的关键。目前通常采用垃圾回收(garbage collection,gc)的方法来优化内存的占用,提高电子设备的运行速度。gc是一种自动的内存管理机制,其主要目的是发现内存中的无用的对象以及回收被无用对象占用的内存空间。但是在执行gc后,可能会导致缓存的命中率下降,从而影响了电子设备的性能,进而降低了用户体验。


技术实现思路

1、本技术实施例提供一种管理对象的方法以及装置,避免了在垃圾回收过程中对于对象局部性的破坏,从而可以提高电子设备的响应速度,增强用户体验。

2、第一方面,提供了一种管理对象的方法,该方法包括:处理器根据正在运行的应用进程使用对象的情况,得到用于记录该对象的使用情况的第一标记,其中该对象存储于内存中;该处理器在确定执行垃圾回收时,根据该第一标记确定是否对该第一内存区域执行垃圾回收,其中该第一内存区域为该内存中已划分的多个内存区域中的一个内存区域;当该处理器确定对该第一内存区域执行垃圾回收时,该处理器判断该第一内存区域中的对象是否被引用,并将被引用的对象移动至该内存中除该第一内存区域以外的内存区域;该处理器清除该第一内存区域中的对象。

3、本技术实施例中,处理器在执行垃圾回收时可以根据第一内存区域中正在运行的应用进程的对象使用情况,确定是否对第一内存区域执行垃圾回收,从而使得垃圾回收作用于对正在运行的应用进程影响小的内存区域,进而保证了正在运行的应用进程使用的对象的局部性,提高了电子设备的运行速度。

4、结合第一方面,在第一方面的某些实现方式中,该处理器根据正在运行的应用进程使用对象的情况,得到用于记录该对象的使用情况的第一标记,包括:该处理器根据上一轮垃圾回收后正在运行的应用进程使用对象的情况,得到用于记录该对象的使用情况的该第一标记。

5、结合第一方面,在第一方面的某些实现方式中,该第一标记还用于反映该对象的冷热情况,若该对象被该正在运行的应用进程使用,该对象为热对象;若该对象未被正在运行的应用进程使用,该对象为冷对象。

6、结合第一方面,在第一方面的某些实现方式中,该处理器在确定执行垃圾回收时,根据该第一标记确定是否对该第一内存区域执行垃圾回收,包括:该处理器根据该第一内存区域中的冷对象和/或热对象的数量确定是否对该第一内存区域执行垃圾回收。

7、本技术实施例中,可以根据冷对象和/或热对象的数量确定是否对第一内存区域执行垃圾回收,从而使得垃圾回收作用于对正在运行的应用进程影响小的内存区域,进而保证了正在运行的应用进程使用的对象的局部性,提高了电子设备的运行速度。

8、结合第一方面,在第一方面的某些实现方式中,该第一内存区域中的热对象对应第一权重值,该第一内存区域中的冷对象对应第二权重值,该第一权重值不等于该第二权重值,该方法还包括:该处理器根据该第一权重值、该第二权重值、该第一内存区域中的热对象的数量和该第一内存区域中的冷对象的数量,确定该第一内存区域的权重值;该处理器在确定执行垃圾回收时,根据该第一标记确定是否对该第一内存区域执行垃圾回收,包括:该处理器根据该第一内存区域中的权重值确定是否对该第一内存区域执行垃圾回收。

9、本技术实施例中,可以根据第一内存区域的权重值确定是否对第一内存区域执行垃圾回收,从而使得垃圾回收作用于对正在运行的应用进程影响小的内存区域,进而保证了正在运行的应用进程使用的对象的局部性,提高了电子设备的运行速度。

10、结合第一方面,在第一方面的某些实现方式中,该第一内存区域中的热对象对应第一权重值,该第一内存区域中的冷对象对应第二权重值,该第一权重值不等于该第二权重值,该方法还包括:该处理器根据该第一权重值、该第二权重值、该第一内存区域中的热对象的数量、该第一内存区域中的冷对象的数量、该第一内存区域中的热对象的使用计数和该第一内存区域中的冷对象的使用计数,确定该第一内存区域的加权权重值;该处理器在确定执行垃圾回收时,根据该第一标记确定是否对该第一内存区域执行垃圾回收,包括:该处理器根据该第一内存区域中的加权权重值确定是否对该第一内存区域执行垃圾回收。

11、本技术实施例中,可以根据第一内存区域的加权权重值确定是否对第一内存区域执行垃圾回收,从而使得垃圾回收作用于对正在运行的应用进程影响小的内存区域,进而保证了正在运行的应用进程使用的对象的局部性,提高了电子设备的运行速度。

12、结合第一方面,在第一方面的某些实现方式中,该方法还包括:该处理器在确定执行垃圾回收集时,确定垃圾回收集,该垃圾回收集包括一个或多个内存区域,该处理器根据该第一标记确定是否对该第一内存区域执行垃圾回收,包括:该处理器在确定执行垃圾回收时,根据该第一标记确定是否将该第一内存区域加入该垃圾回收集。

13、本技术实施例中,处理器在选取垃圾回收集时,可以根据正在运行的应用进程的对象使用情况,选取对正在运行的应用进程影响小的内存区域(例如,冷对象较多的内存区域)作为垃圾回收集,尽量避免选取对正在运行的应用进程影响大的内存区域(例如,热对象较多的内存区域)作为垃圾回收集,从而使得垃圾回收作用于对正在运行的应用进程影响小的内存区域,进而保证了正在运行的应用进程使用的对象的局部性,提高了电子设备的运行速度。

14、结合第一方面,在第一方面的某些实现方式中,其特征在于,该处理器将被引用的对象移动至该内存中除该第一内存区域以外的内存区域,包括:该处理器根据该被引用的对象的冷热情况,将被引用的热对象和被引用的冷对象移动至该内存中除该第一内存区域以外的不同内存区域。

15、本技术实施例中,处理器根据活对象的冷热情况,将热对象和冷对象移动至不同的内存区域,将热对象聚集在一起,防止下一次垃圾收集时将包括热对象多的内存区域选为垃圾回收集,换句话说,使得热度值高的内存区域在经过垃圾回收后热度值变得更加高,进而进一步的提高了热对象的局部性和保证了热对象的局部性,提高了电子设备的运行速度。

16、结合第一方面,在第一方面的某些实现方式中,该内存中已划分的多个内存区域包括第一类型的内存区域和第二类型的内存区域。

17、结合第一方面,在第一方面的某些实现方式中,该方法还包括:该处理器确定完成垃圾回收后,清理该第一标记。

18、结合第一方面,在第一方面的某些实现方式中,该处理器在确定执行垃圾回收时,包括:当满足预设条件时,该处理器确定执行垃圾回收。

19、结合第一方面,在第一方面的某些实现方式中,该预设条件为该内存的剩余空间小于第一阈值;或该内存的使用空间大于第二阈值。

20、结合第一方面,在第一方面的某些实现方式中,该处理器判断该第一内存区域中的对象是否被引用,包括该处理器判断该第一内存区域中的对象是否被栈中的局部变量引用。

21、结合第一方面,在第一方面的某些实现方式中,该方法还包括:该第一内存区域中被引用的对象为活对象,该第一内存区域中没有被引用的对象为死对象。

22、第二方面,提供了一种电子设备,该电子设备包括执行上述第一方面或者第一方面的任意一种可能的设计的方法的模块/单元;这些模块/单元可以通过硬件实现,也可以通过硬件执行相应的软件实现。

23、第三方面,提供了一种芯片,该芯片与电子设备中的存储器耦合,用于调用存储器中存储的计算机程序并执行本技术实施例第一方面及其第一方面任一可能设计的技术方案;本技术实施例中“耦合”是指两个部件彼此直接或间接地结合。

24、第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质包括计算机程序,当计算机程序在电子设备上运行时,使得该电子设备执行如上述第一方面及其第一方面任一可能设计的技术方案。

25、第五方面,提供了一种计算机程序,该计算机程序包括指令,当该指令在计算机上运行时,使得该计算机执行如上述第一方面及其第一方面任一可能设计的技术方案。

26、其中,第二方面至第五方面的有益效果,请参见第一方面的有益效果,不重复赘述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1