[发明专利]一种节省内存的数据存储方法在审
申请号: | 201711263551.7 | 申请日: | 2017-12-05 |
公开(公告)号: | CN107943714A | 公开(公告)日: | 2018-04-20 |
发明(设计)人: | 石文威 | 申请(专利权)人: | 安徽科创智慧知识产权服务有限公司 |
主分类号: | G06F12/06 | 分类号: | G06F12/06;G06F3/06 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 236000 安徽省亳州市工*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 节省 内存 数据 存储 方法 | ||
技术领域
本发明涉及数据存储,具体涉及一种节省内存的数据存储方法。
背景技术
对于特别复杂的作业,都会占用大量的系统内存,因此作业数据通常都需要做压缩处理,以便节省内存。
现有技术中的压缩方法是:为压缩功能模块分配一个足够大的压缩工作内存,用于存储压缩后生成的压缩数据,当压缩功能模块压缩完毕,返回压缩数据长度,应用程序释放源数据占用的内存空间,然后根据总体长度向系统申请压缩数据长度大小的内存,并将压缩工作内存中的压缩后数据复制到申请到的内存中。但是对于复杂的作业,在某种情况下,由于系统内存在碎片或是没有足够大的内存空间,为存储源数据分配足够大的内存不成功,就无法继续进行作业数据处理,同时为了存储压缩后的数据向系统申请压缩数据长度大小的内存不成功也无法进行数据处理,公知的解决方法是尝试使用另一种压缩比较高的压缩算法去重新压缩源数据,并重新向系统申请压缩数据长度大小的内存,若此时还是不成功,则仍然无法继续进行作业数据处理。
发明内容
本发明解决了现有技术存在的在进行压缩处理时由于系统内存在碎片或是没有足够大的内存空间,为存储源数据分配足够大的内存不成功,就无法继续进行作业数据处理的问题,提供一种节省内存的数据存储方法,其应用时通过取消对系统大块连续内存的应用请求,在系统内存存在碎片时,申请大块存储内存不成功后,仍可以进行大块数据的压缩存储处理。
本发明通过下述技术方案实现:
一种节省内存的数据存储方法,依次进行以下步骤,
A:将源数据压缩,生成压缩数据;
B:计算该压缩数据中各行的总体压缩长度;
C:调用当前的最大内存块;
D:根据该各行的总体压缩长度计算该最大内存块可存储的压缩数据行数;
E:向系统申请该行数的数据所需的内存块;
F:接收系统分配的内存块,并将该行数的压缩数据存储至该内存块中。
进一步的,一种节省内存的数据存储方法,所述步骤A之前还进行步骤G:进行系统初始化,为源数据分配一个内存块,为压缩功能分配一内存块。
进一步的,一种节省内存的数据存储方法,所述步骤B中的总体压缩长度为各行压缩长度数据与该行压缩数据的总体占用字节数。
进一步的,一种节省内存的数据存储方法,所述步骤C中通过API函数调用当前的最大内存块。
进一步的,一种节省内存的数据存储方法,所述步骤F之后还进行步骤H:判断压缩数据是否还有未存储的行数。
进一步的,一种节省内存的数据存储方法,所述步骤H之后还进行步骤I:若当前压缩数据中还有未存储的行数,返回步骤C,直至完成所有压缩数据的存储。
本发明与现有技术相比,具有如下的优点和有益效果:
1、本发明根据最大内存块的大小,将压缩数据动态分行存储,首先将源数据压缩,生成压缩数据,然后计算该压缩数据中各行地总体压缩长度,调用当前的最大内存块,根据该各行的总体压缩长度计算该最大内存块可存储的压缩数据行数,再根据该压缩数据行数向系统申请内存块,接收系统分配的内存块,并将该行数的压缩数据存储至该内存块中。
2、本发明所提出的压缩数据存储方法可将压缩数据按照可用最大内存块的大小,进行动态分行存储,直至将所有压缩数据行存储下来,有效的利用了系统内存中的碎片,特别地,对于嵌入式系统中比较复杂的作业,充分提高了系统内存的使用率。
3、本发明通过取消对系统大块连续内存的应用请求,在系统内存存在碎片时,申请大块存储内存不成功后,仍可以进行大块数据的压缩存储处理。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
实施例
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于安徽科创智慧知识产权服务有限公司,未经安徽科创智慧知识产权服务有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711263551.7/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置