System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开涉及存储,尤其涉及一种内存数据处理方法、装置、电子设备和存储介质。
技术介绍
1、zram是linux提供的一种内存压缩技术,通过对内存数据进行压缩来减少内存占用,提升系统可用内存大小,目前已在安卓(android)设备上得到广泛支持。
2、zram支持回写(writeback)功能,系统可以根据需要设置zram驱动暴露给上层的备用存储设备(backing_dev sys)节点,将zram与物理存储介质关联起来,在合适的时机,将zram中不活跃的内存页面数据交换到物理存储介质,进一步提升系统可用内存大小。
3、相关技术中,在设置zram驱动的备用存储设备节点时,要求传入的路径是块(block)类型的设备路径。如果安卓设备配置了zram的回写功能,系统会将回环设备(loopdevice)的设备路径设置到zram的备用存储设备节点,这样在往物理存储介质交换内存数据的过程中,所有的内存数据都需要经过回环设备、用户分区文件系统、块设备层加密功能(即,dm-crypt)以及块设备驱动层的处理,这会导致增加内存交换的系统开销,对系统性能造成影响。
技术实现思路
1、本公开实施例提供一种内存数据处理方法、装置、电子设备和存储介质。
2、根据本公开实施例的第一方面,提供了一种内存数据处理方法,应用于电子设备,所述电子设备的linux内核中设置有线性映射dm-linear设备以及块设备驱动层,所述方法包括:
3、获取针对目标内存页的访问请求;所述
4、通过所述dm-linear设备将所述目标内存页在所述dm-linear设备上的逻辑地址映射到磁盘上的交换文件对应的物理地址;所述dm-linear设备存储有逻辑地址与物理地址的映射关系;
5、根据所述目标内存页的逻辑地址映射到的物理地址,将输入输出请求下发至所述块设备驱动层。
6、在一些实施例中,所述访问请求包括以下之一:
7、写请求,用于请求将所述目标内存页从内存中存储至所述交换文件中;
8、读请求,用于请求将所述交换文件存储的所述目标内存页读回至所述内存。
9、在一些实施例中,在所述获取针对目标内存页的访问请求步骤之前,所述方法还包括:
10、将具有指定容量的文件虚拟为所述dm-linear设备。
11、在一些实施例中,所述将具有指定容量的文件虚拟为所述dm-linear设备,包括:
12、获取所述dm-linear设备的逻辑地址与所述文件在所述磁盘上的物理地址之间的映射关系;
13、将所述映射关系写入所述dm-linear设备中,并将所述dm-linear设备设置为内存压缩zram驱动的备用存储设备。
14、在一些实施例中,所述文件包括逻辑地址连续的多个数据块,每个所述数据块的容量相同;所述获取所述dm-linear设备的逻辑地址与所述文件在所述磁盘上的物理地址之间的映射关系,包括:
15、针对每个所述数据块,根据所述数据块的容量,遍历所述磁盘上的具有连续物理地址的物理地址区间;
16、根据遍历到的每个所述物理地址区间,确定所述dm-linear设备的逻辑地址与所述文件在所述磁盘上的物理地址之间的映射关系;其中,所述映射关系包括:每个所述物理地址区间的起始物理地址、区间长度与每个所述数据块的起始逻辑地址之间的对应关系。
17、在一些实施例中,所述方法还包括:
18、当检测到预设条件被满足时,创建具有指定容量的所述文件。
19、在一些实施例中,所述预设条件包括以下至少之一:
20、所述电子设备的操作系统的剩余存储空间大于第一预设空间阈值;
21、所述电子设备的内存数据的占用空间大于第二预设空间阈值;
22、所述电子设备的内存数据在内存的访问频率小于预设频率阈值;
23、所述物理存储介质的剩余寿命大于预设寿命阈值。
24、根据本公开实施例的第二方面,提供了一种内存数据处理装置,应用于电子设备,所述电子设备的linux内核中设置有线性映射dm-linear设备以及块设备驱动层,所述装置包括:
25、获取模块,用于获取针对目标内存页的访问请求;所述访问请求包含所述目标内存页在所述dm-linear设备上的逻辑地址;
26、映射模块,用于通过所述dm-linear设备将所述目标内存页在所述dm-linear设备上的逻辑地址映射到磁盘上的交换文件对应的物理地址;所述dm-linear设备存储有逻辑地址与物理地址的映射关系;
27、下发模块,用于根据所述目标内存页的逻辑地址映射到的物理地址,将输入输出请求下发至所述块设备驱动层。
28、在一些实施例中,所述访问请求包括以下之一:
29、写请求,用于请求将所述目标内存页从内存中存储至所述交换文件中;
30、读请求,用于请求将所述交换文件存储的所述目标内存页读回至所述内存。
31、在一些实施例中,所述装置还包括:
32、虚拟模块,用于将具有指定容量的文件虚拟为所述dm-linear设备。
33、在一些实施例中,所述虚拟模块用于:
34、获取所述dm-linear设备的逻辑地址与所述文件在所述磁盘上的物理地址之间的映射关系;
35、将所述映射关系写入所述dm-linear设备中,并将所述dm-linear设备设置为内存压缩zram驱动的备用存储设备。
36、在一些实施例中,所述文件包括逻辑地址连续的多个数据块,每个所述数据块的容量相同;所述虚拟模块用于:
37、针对每个所述数据块,根据所述数据块的容量,遍历所述磁盘上的具有连续物理地址的物理地址区间;
38、根据遍历到的每个所述物理地址区间,确定所述dm-linear设备的逻辑地址与所述文件在所述磁盘上的物理地址之间的映射关系;其中,所述映射关系包括:每个所述物理地址区间的起始物理地址、区间长度与每个所述数据块的起始逻辑地址之间的对应关系。
39、在一些实施例中,所述装置还包括:
40、创建模块,用于当检测到预设条件被满足时,创建具有指定容量的所述文件。
41、在一些实施例中,所述预设条件包括以下至少之一:
42、所述电子设备的操作系统的剩余存储空间大于第一预设空间阈值;
43、所述电子设备的内存数据的占用空间大于第二预设空间阈值;
44、所述电子设备的内存数据在内存的访问频率小于预设频率阈值;
45、所述物理存储介质的剩余寿命大于预设寿命阈值。
46、根据本公开实施例的第三方面,提供了一种电子设备,所述电子设备包括:
47、处理器和用于存储能够在所述处理器本文档来自技高网...
【技术保护点】
1.一种内存数据处理方法,其特征在于,应用于电子设备,所述电子设备的Linux内核中设置有线性映射DM-linear设备以及块设备驱动层,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述访问请求包括以下之一:
3.根据权利要求1或2所述的方法,其特征在于,在所述获取针对目标内存页的访问请求步骤之前,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,所述将具有指定容量的文件虚拟为所述DM-linear设备,包括:
5.根据权利要求4所述的方法,其特征在于,所述文件包括逻辑地址连续的多个数据块,每个所述数据块的容量相同;所述获取所述DM-linear设备的逻辑地址与所述文件在所述磁盘上的物理地址之间的映射关系,包括:
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,所述预设条件包括以下至少之一:
8.一种内存数据处理装置,其特征在于,应用于电子设备,所述电子设备的Linux内核中设置有线性映射DM-linear设备以及块设备
9.一种电子设备,其特征在于,所述电子设备包括:
10.一种非临时性计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至7任一项所述的内存数据处理方法中的步骤。
...【技术特征摘要】
1.一种内存数据处理方法,其特征在于,应用于电子设备,所述电子设备的linux内核中设置有线性映射dm-linear设备以及块设备驱动层,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述访问请求包括以下之一:
3.根据权利要求1或2所述的方法,其特征在于,在所述获取针对目标内存页的访问请求步骤之前,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,所述将具有指定容量的文件虚拟为所述dm-linear设备,包括:
5.根据权利要求4所述的方法,其特征在于,所述文件包括逻辑地址连续的多个数据块,每个所述数据块的容量相同;所述获取所述dm-linear设备的逻辑地址与...
【专利技术属性】
技术研发人员:熊平,刘德胜,王鸿靖,熊展博,
申请(专利权)人:北京小米移动软件有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。