[发明专利]一种基于内存映射的可变长数据存取方法及系统在审
申请号: | 202210188706.X | 申请日: | 2022-02-28 |
公开(公告)号: | CN114721973A | 公开(公告)日: | 2022-07-08 |
发明(设计)人: | 李有财;陈方平;杨柳;邹凤云 | 申请(专利权)人: | 福建星云电子股份有限公司 |
主分类号: | G06F12/04 | 分类号: | G06F12/04;G06F12/02;G06F21/64 |
代理公司: | 福州市鼓楼区京华专利事务所(普通合伙) 35212 | 代理人: | 吴学林 |
地址: | 350000 福建省福州市*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 内存 映射 变长 数据 存取 方法 系统 | ||
本发明提供了计算机技术领域的一种基于内存映射的可变长数据存取方法及系统,方法包括如下步骤:步骤S10、在内存中预留一映射空间,并创建一映射文件结构;步骤S20、获取不定长的映射数据,基于所述映射数据以及映射文件结构动态生成映射文件,并将所述映射文件映射至映射空间;步骤S30、从所述映射空间获取映射文件并进行校验;步骤S40、动态创建解析模型解析所述映射文件得到映射数据,完成所述映射数据的存取。本发明的优点在于:实现动态映射可变长数据,极大的提升了适用范围。
技术领域
本发明涉及计算机技术领域,特别指一种基于内存映射的可变长数据存取方法及系统。
背景技术
内存映射是操作系统提供的一种新的文件数据存取技术,内存映射即在内存空间中为文件数据保留一存储空间,并将文件数据映射到该存储空间,操作系统直接通过映射的文件数据进行管理页映射缓冲以及高速缓冲等任务,不需要调用、分配、释放内存块和文件I/O操作。由于无需将文件数据加载到内存、数据从内存到文件数据的回写以及释放内存块等步骤,使得内存映射技术在处理大数据量的文件数据时起到相当重要的作用。
然而,传统的内存映射技术采用固定长度的数据结构,即只能映射一些固定长度的字段,无法满足动态变长结构数据的存取需求。例如锂电池在生产过程中需要进行一系列的测试,测量过程中会使用到大量的辅助设备,并产生大量的长度不定的数据,而传统的内存映射技术无法适用于该场景。
因此,如何提供一种基于内存映射的可变长数据存取方法及系统,实现动态映射可变长数据,以提升适用范围,成为一个亟待解决的技术问题。
发明内容
本发明要解决的技术问题,在于提供一种基于内存映射的可变长数据存取方法及系统,实现动态映射可变长数据,以提升适用范围。
第一方面,本发明提供了一种基于内存映射的可变长数据存取方法,包括如下步骤:
步骤S10、在内存中预留一映射空间,并创建一映射文件结构;
步骤S20、获取不定长的映射数据,基于所述映射数据以及映射文件结构动态生成映射文件,并将所述映射文件映射至映射空间;
步骤S30、从所述映射空间获取映射文件并进行校验;
步骤S40、动态创建解析模型解析所述映射文件得到映射数据,完成所述映射数据的存取。
进一步地,所述步骤S10中,所述映射文件结构具体包括一文件头以及一数据区;
所述文件头至少包括总数据条数、数据总长度、可变数据总长度、第一校验值;
所述数据区包括若干条映射内容,各所述映射内容至少包括定长数据、变长数据以及第二校验值。
进一步地,所述步骤S20具体为:
获取不定长的映射数据,基于所述映射文件结构,统计所述映射数据的总数据条数、数据总长度以及可变数据总长度,并对所有的所述映射数据统一进行哈希计算得到第一校验值,基于所述总数据条数、数据总长度、可变数据总长度以及第一校验值动态生成文件头;
将各所述映射数据划分为定长数据和变长数据,对所述定长数据和变长数据进行哈希计算计算第二校验值,基于各所述定长数据、变长数据以及第二校验值生成映射内容;
基于所述文件头以及各映射内容动态生成映射文件,并将所述映射文件实时映射至映射空间。
进一步地,所述步骤S30具体包括:
步骤S31、创建一用于访问所述映射文件的访问器,利用所述访问器访问内存中的映射文件;
步骤S32、解析所述映射文件得到文件头以及数据区,判断所述数据区包含映射内容的条数是否等于总数据条数,若是,则进入步骤S33;若否,则结束流程;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建星云电子股份有限公司,未经福建星云电子股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210188706.X/2.html,转载请声明来源钻瓜专利网。