[发明专利]一种空间极紧凑的缓存技术在审
申请号: | 201910947570.4 | 申请日: | 2019-10-08 |
公开(公告)号: | CN110737661A | 公开(公告)日: | 2020-01-31 |
发明(设计)人: | 王君武;申玥;黄张勇 | 申请(专利权)人: | 深圳市高斯通信息技术有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/2455 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518000 广东省深圳市南*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 缓存技术 存储单元 缓存 二分法查找 计算机内存 查找 存储空间 软件开发 数组元素 顺序存储 低位 整型 紧凑 占用 | ||
1.一种空间极紧凑的缓存技术,包括基础存储单元,其特征在于:所述基础存储单元包键、值、位数和键值对。
2.根据权利要求1所述的一种空间极紧凑的缓存技术,其特征在于:所述基础存储单元是一个长整型(long int),一共8个字节(byte)。
3.根据权利要求1所述的一种空间极紧凑的缓存技术,其特征在于:所述键(key)根据最大值所需要的位数(bits)存放在若干高位上。
4.根据权利要求1所述的一种空间极紧凑的缓存技术,其特征在于:所述值(value)根据最大值所需要的位数(bits)存放在若干低位上。
5.根据权利要求1所述的一种空间极紧凑的缓存技术,其特征在于:所述键值对(key-value)按照键(key)的大小按顺序存储在每个数组元素中,查找时则根据键的值用二分法查找该键值对的具体位置。
6.根据权利要求1所述的一种空间极紧凑的缓存技术,其特征在于,包括以下实现步骤方式:
S1:缓存初始化传入两个参数:最大容量、键(key)所需位数,获取最大值方法,通过传入位数返回该位数所能表示的最大整数,获取特定位置掩码(mask),传入位置(从高到低第几位)和宽度(最大值占几位),返回对应掩码,获取键,传入数据在数组中的位置(数组下标),将该位置数组元素无符号右移64-键的宽度即得到对应的键的值;
S2:根据键查找元素,传入需要查找的键的值,本缓存的元素是根据键的大小顺序存储的,查找元素时通过上述获取键的方法获得每次探测的键的值,当查到所传入的键时,返回该元素在数组中的下标(index),否则,返回-1表示没有找到;
S3:获取某属性,传入数组下标、属性在64个位中所在的位置,属性所占的宽度,根据位置和宽度,通过前述获取特定位置掩码的方法获得该属性的掩码,数组下标对应的元素和属性掩码做与运算(&),然后将结果无符号右移64减位置减宽度个位得到该属性的值,返回该值;
S4:清空某属性的值,传入数组下标、属性所在位置、属性所占的宽度,根据位置和宽度,通过前述获取特定位置掩码的方法获得该属性的掩码,再将掩码取反,用取反后的结果和该数组元素(由数组下标确定)做与运算即完成对该属性值的清零,用同步锁保护该方法;
S5:增加某属性的值,传入数组下标、属性所在位置、属性所占的宽度、属性需要增加的值,根据数组下标、属性所在位置、属性所占的宽度通过前述获取某属性的方法得到该属性当前值,通过传入的宽度根据前述获取最大值方法得到该属性能够存储的最大值maxVal,用当前值加上传入的属性需要增加的值得到val,如果val大于maxVal则将maxVal赋给val,如果val小于0则将0赋给val,通过前述设置某属性方法将计算后的val设置为该属性的当前值,用同步锁保护该方法,仅供增加元素的查找,传入键的值,通过二分法查找该键所在的数组下标,如果查到则返回数组下标和找到结果标志,如果没查到则返回该键在数组中应该所处的位置的数组下标以及找不到结果标志;
S6:插入元素,传入键和该键在数组中的位置(数组下标),通过前述获取键方法得到传入的数组下标对应的键的值,如果这个值比传入键的值小,则数组下标后移一个位置得到新的下标,将传入的键放到当前下标所指示的数组元素上,把这个下标所指示的之前的元素以及其后面的所有元素均往后移一个位置,返回插入元素的数组下标,新增键,传入键,先用数组中最大的键,即存在最后面的那个键进行对比,如果传入的键比这个最大的键还要大,那么直接通过前述插入元素方法将传入的键放到最后面的位置上,如果传入的键不是最大的,则通过前述仅供增加元素的查找方法查找该键是否已经存在,如果不存在,则根据得到的位置和键通过前述插入元素方法插入需要新增的键,设置某属性,传入数组下标、属性所在位置、属性所占的宽度、属性的值,根据数组下标、属性位置、属性宽度用前述清空某属性的值方法清空该属性值,将传入的属性的值左移64减位置减宽度个位,用左移后的值和该数组元素(由数组下标确定)做或运算即完成对属性的赋值,用同步锁保护该方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市高斯通信息技术有限公司,未经深圳市高斯通信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910947570.4/1.html,转载请声明来源钻瓜专利网。