内存管理方法、内存管理装置、电子设备及存储介质制造方法及图纸

技术编号:37552100 阅读:42 留言:0更新日期:2023-05-15 07:37
本申请公开了一种Java虚拟机的内存管理方法、内存管理装置、电子设备及存储介质,内存管理方法包括以下步骤:在堆内存中划分多个第一子区域,在栈内存中划分多个第二子区域,每个第二子区域与一个第一子区域一一映射;在触发全局内存垃圾回收的情况下,在栈内存中选取部分的第二子区域进行初始标记确定目标第二子区域,并对目标第二子区域对应的第一子区域进行并发回收和并发重置。如此,通过栈内存中选取部分而非全部的第二子区域进行初始标记,在初始标记阶段不需要暂停应用程序线程,然后对堆内存中对应的第一子区域进行并发回收和并发重置,从而Java虚拟机在进行全局内存垃圾回收时,应用线程和垃圾回收线程始终并行避免应用程序线程卡死。应用程序线程卡死。应用程序线程卡死。

【技术实现步骤摘要】
内存管理方法、内存管理装置、电子设备及存储介质


[0001]本申请涉及计算机
,特别涉及一种内存管理方法、内存管理装置、电子设备及存储介质。

技术介绍

[0002]在Java虚拟机中,程序在运行时都在不断的产生对象和回收对象,而部分对象使用完后就无用了,因此程序会对该部分对象进行回收,达到释放内存空间的目的。
[0003]目前,在Java虚拟机进行内存管理时,其回收对象的机制会导致应用程序线程被挂起从而为回收对象的线程让路,导致影响业务的正常运行。具体而言,在Java虚拟机使用G1垃圾回收器在触发全局内存垃圾回收时,在垃圾回收的初始标记阶段会对堆内存执行全区域扫描,从而需要暂停应用程序线程以至于严重影响到正常业务的进行。

技术实现思路

[0004]本申请提供一种内存管理方法、内存管理装置、电子设备和存储介质,旨在解决现有技术中Java虚拟机进行内存管理时,回收空间的初始标记阶段会对堆内存执行全区域扫描导致需要暂停应用程序线程的问题。
[0005]本申请的第一方面,提出了一种Java虚拟机的内存管理方法,所述本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种Java虚拟机的内存管理方法,其特征在于,所述内存管理方法包括以下步骤:在堆内存中划分多个第一子区域,在栈内存中划分多个第二子区域,每个所述第二子区域与一个所述第一子区域一一映射;在触发全局内存垃圾回收的情况下,在所述栈内存中选取部分的所述第二子区域进行初始标记确定目标第二子区域,并对所述目标第二子区域对应的所述第一子区域进行并发回收和并发重置。2.根据权利要求1所述的内存管理方法,其特征在于,所述第一子区域包括第一常规区域和第一大区域,所述第一常规区域用于存储常规对象,所述第二大区域用于存储大对象,所述第二子区域包括与所述第一常规区域和所述第一大区域一一映射的第二常规区域和第二大区域;其中,所述常规对象所占用的堆内存空间在阈值内,所述大对象所占用的堆内存空间超过阈值。3.根据权利要求2所述的内存管理方法,其特征在于,所述在所述栈内存中选取部分的所述第二子区域进行初始标记确定目标第二子区域,并对所述目标第二子区域对应的所述第一子区域进行并发回收和并发重置的步骤,包括:在所述栈内存中选取所述第二大区域进行初始标记确定目标第二大区域;对所述目标第二大区域对应的所述第一大区域进行并发标记确定目标第一大区域;对所述目标第一大区域进行并发回收和并发重置;判断所述堆内存的空间回收是否达到预定比例,并在达到所述预定比例的情况下确定所述全局内存垃圾回收完成。4.根据权利要求3所述的内存管理方法,其特征在于,在确定所述堆内存的空间回收未达到所述预定比例的情况下,所述在所述栈内存中选取部分的所述第二子区域进行初始标记确定目标第二子区域,并对所述目标第二子区域对应的第一子区域进行并发回收和并发重置的步骤,还包括:在所述栈内存中选取预设数量的所述第二常规区域进行初始标记确定目标第二常规区域;对所述目标第二常规区域对应的所述第一常规区域进行并发标记确定目标第一常规区域;对所述目标第一...

【专利技术属性】
技术研发人员:张星亮刘独刚
申请(专利权)人:深圳市六度人和科技有限公司
类型:发明
国别省市:

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

1