[发明专利]一种内存索引压缩方法和装置有效
申请号: | 201110362273.7 | 申请日: | 2011-11-15 |
公开(公告)号: | CN103106144A | 公开(公告)日: | 2013-05-15 |
发明(设计)人: | 张雁飞 | 申请(专利权)人: | 北京新媒传信科技有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 北京市隆安律师事务所 11323 | 代理人: | 权鲜枝 |
地址: | 100089 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 索引 压缩 方法 装置 | ||
技术领域
本发明涉及计算机技术领域,特别涉及一种内存索引压缩方法和装置。
背景技术
现有技术中,内存索引键值中包含字符类型,由于字符类型的长度不确定性,占用的内存量也不确定。大部分情况下内存索引对内存的使用较高都是由于字符类型的占用量比较高引起的。
发明内容
有鉴于此,本发明提供了一种内存索引压缩方法和装置,本发明的技术方案能有效对内存索引进行压缩,减小内存索引对内存的占用。
为达到上述目的,本发明的技术方案是这样实现的:
本发明公开了一种内存索引压缩方法,该方法包括:
在内存中创建索引哈希链表空间;
当有内存索引键值需要保存到内存时,根据第一哈希函数对该内存索引键值进行哈希计算,得到哈希键值;
查看所述索引哈希链表空间中是否已存在与所述哈希键值相同的值,是则不做操作,否则将所述哈希键值保存到所述索引哈希链表空间中。
上述方法中,所述索引哈希链表空间包含n个索引区,对应序号依次为0~n-1;
查看所述索引哈希链表空间中是否已存在与所述哈希键值相同的值包括:根据第二哈希函数对该内存索引键值进行哈希计算,对该哈希计算结果进行模n运算得到0~n-1中的一个值,确定序号与该值对应的索引区,查看该确定的索引区中是否已存在与所述哈希键值相同的值;
所述将哈希键值保存到所述索引哈希链表空间中包括:将所述哈希键值保存到该确定的索引区中。
在上述方法中,将所述哈希键值保存到该确定的索引区中包括:构建一个索引条目,该索引条目包括所述哈希键值和一个链表指针;将构建的索引条目添加到该确定的索引区中;其中,所述链表指针指向下一个索引条目。
在上述方法中,所述第一哈希函数为DJB哈希函数;所述第二哈希函数为CRC16哈希函数。
本发明还公开了一种内存索引压缩装置,该装置包括:内存模块、创建模块和内存索引压缩模块,其中:
创建模块,用于在内存模块中创建索引哈希链表空间,并通知内存索引压缩模块;
内存索引压缩模块,用于在接收到内存索引键值时,根据第一哈希函数对该内存索引键值进行哈希计算,得到哈希键值,然后查看内存模块中的索引哈希链表空间中是否已存在与所述哈希键值相同的值,是则不做操作,否则将所述哈希键值保存到所述索引哈希链表空间中。
在上述装置中,所述创建模块,用于在内存模块中创建包含n个索引区的索引哈希链表空间;该n个索引区的序号依次为0~n-1;
所述内存索引压缩模块,用于根据第二哈希函数对该内存索引键值进行哈希计算,对该哈希计算结果进行模n运算得到0~n-1中的一个值,确定序号与该值对应的索引区,查看该确定的索引区中是否已存在与所述哈希键值相同的值,如果不存在则将所述哈希键值保存到该确定的索引区中。
在上述装置中,所述内存索引压缩模块,用于构建一个索引条目,将构建的索引条目添加到该确定的索引区中;其中,所述索引条目包括所述哈希键值和一个链表指针;所述链表指针指向下一个索引条目。
在上述装置中,所述内存索引压缩模块,用于根据第DJB哈希函数对该内存索引键值进行哈希计算,得到哈希键值;并用于根据CRC16哈希函数对该内存索引键值进行哈希计算,对该哈希计算结果进行模n运算得到0~n-1中的一个值。
本发明实施例的有益效果是:本发明的技术方案中,由于对内存索引键值进行哈希运算后将整数型的哈希键值保存到内存中,整数型的数据对内存的占用要大大小于字符类型的数据对内存的占用,因此相对现有技术中直接在内存中保存字符类型的内存索引键值的方案相比,能有效对内存索引进行压缩,减小内存索引对内存的占用。
附图说明
图1是本发明实施例中的一种内存索引压缩方法的流程图;
图2是本发明实施例中的一种内存索引压缩装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明实施例中的一种内存索引压缩方法的流程图。如图1所示,该方法包括:
101,在内存中创建索引哈希链表空间;
102,当有内存索引键值需要保存到内存时,根据第一哈希函数对该内存索引键值进行哈希计算,得到哈希键值;
103,查看所述索引哈希链表空间中是否已存在与所述哈希键值相同的值,是则不做操作,否则将所述哈希键值保存到所述索引哈希链表空间中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京新媒传信科技有限公司,未经北京新媒传信科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110362273.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:导地线异物清除器
- 下一篇:紫河车香菇散的制备方法