基于非易失性内存的新型混合内存垃圾回收方法及系统技术方案

技术编号:24573685 阅读:27 留言:0更新日期:2020-06-21 00:04
本发明专利技术提供了一种基于非易失性内存的新型混合内存垃圾回收方法及系统,包括:步骤1:当托管运行时无可用内存时,触发内存垃圾回收;步骤2:对内存区域进行划分,初始化内存区域数据;步骤3:在内存垃圾回收过程中,更新每个内存区域的数据信息;步骤4:将数据信息写入到非易失性内存中,并清理使用到的易失性内存缓存。本发明专利技术使用极少的易失性内存用作非易失内存的缓存,加快了内存数据读请求;通过异步地将缓存中的数据写入到非易失内存,提高了非易失性内存上垃圾回收的性能;对可能同时访问的数据进行存放位置的重分配,利用了非易失内存连续局部访问更快的特性,从而提高了程序的性能。

A new mixed memory garbage collection method and system based on nonvolatile memory

【技术实现步骤摘要】
基于非易失性内存的新型混合内存垃圾回收方法及系统
本专利技术涉及内存管理
,具体地,涉及一种基于非易失性内存的新型混合内存垃圾回收方法及系统。
技术介绍
非易失性内存是一种新型的计算机内存。传统的计算机内存一旦断开电源,内存中的数据会被清除;而在非易失性内存中的数据,即使内存设备的电源被断开,也能保证不会失效,从而实现数据在内存中的持久化保存。同时除了能够持久化保存数据,非易失性内存还能够像易失性内存一样支持字节寻址,这为使用非易失性内存来辅助甚至代替易失性内存带来了进一步优势。同时相比于易失性内存,非易失性内存的密度也高,单位容量价格更低。但这些优点带来的后果就是非易失性内存在的访问延迟更高,数据带宽更低。程序对内存的资源管理可以分为两类:一类是由开发程序的程序员手动进行内存管理;另一类是由一个程序,通常叫托管运行时,自动进行管理管理。是否自动进行内存管理是由选择的编程语言决定。目前在云环境下,自动内存管理的语言,如Java,Scala等,被大量的使用。在自动内存管理中,至关重要的一点是如何进行内存的回收,通常称为内存的本文档来自技高网...

【技术保护点】
1.一种基于非易失性内存的新型混合内存垃圾回收方法,其特征在于,包括:/n步骤1:当托管运行时无可用内存时,触发内存垃圾回收;/n步骤2:对内存区域进行划分,初始化内存区域数据;/n步骤3:在内存垃圾回收过程中,更新每个内存区域的数据信息;/n步骤4:将数据信息写入到非易失性内存中,并清理使用到的易失性内存缓存。/n

【技术特征摘要】
1.一种基于非易失性内存的新型混合内存垃圾回收方法,其特征在于,包括:
步骤1:当托管运行时无可用内存时,触发内存垃圾回收;
步骤2:对内存区域进行划分,初始化内存区域数据;
步骤3:在内存垃圾回收过程中,更新每个内存区域的数据信息;
步骤4:将数据信息写入到非易失性内存中,并清理使用到的易失性内存缓存。


2.根据权利要求1所述的基于非易失性内存的新型混合内存垃圾回收方法,其特征在于,所述内存区域数据包括:总的数据量和易失性缓存的位置。


3.根据权利要求1所述的基于非易失性内存的新型混合内存垃圾回收方法,其特征在于,所述步骤3包括:在内存垃圾回收过程中,每当一个区域的数据量达到一个阈值时,创建并切换使用易失性存储器,将易失性存储器作为非易失性内存上的数据的缓存。


4.根据权利要求1所述的基于非易失性内存的新型混合内存垃圾回收方法,其特征在于,所述步骤4包括:将所有数据先写入到一个易失性存储器的缓存中,再异步地写回到非易失性内存中。


5.根据权利要求1所述的基于非易失性内存的新型混合内存垃圾回收方法,其特征在于,在垃圾回收过程中对非易失性内存中的数据进行位置重分配;
在数据存放位置重分配过程中,对应用程序内存的访问行为进行分析,将会...

【专利技术属性】
技术研发人员:杨雁飞吴明瑜臧斌宇
申请(专利权)人:上海交通大学
类型:发明
国别省市:上海;31

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

1