[发明专利]减少用于长期计算的存储器使用在审
申请号: | 201780048062.1 | 申请日: | 2017-07-27 |
公开(公告)号: | CN109564569A | 公开(公告)日: | 2019-04-02 |
发明(设计)人: | B·J·F·德斯迈特;E·A·罗泽尔 | 申请(专利权)人: | 微软技术许可有限责任公司 |
主分类号: | G06F16/245 | 分类号: | G06F16/245 |
代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 王茂华 |
地址: | 美国华*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 高速缓存 标准表示 表达式树 引用 存储器使用 原始表达式 存储要求 检索模板 物理存储 系统利用 存储 捆绑 压缩 创建 恢复 | ||
1.一种用于压缩表达式的方法,包括:
接收处于标准表示格式的表达式;
创建包括所述表达式的子集的模板;
确定所述模板是否存在于高速缓存中;
响应于确定所述模板存在于所述高速缓存中,获得对所述模板的高速缓存引用;
响应于确定所述模板不存在于所述高速缓存中,将所述模板存储于所述高速缓存中并获得对所述模板的所述高速缓存引用;
从所述表达式减去所述模板,以标识所述模板与所述表达式之间的差异;以及
创建包括所述高速缓存引用以及所述模板与所述表达式之间的所述差异的捆绑。
2.根据权利要求1所述的方法,还包括:
选择所述模板与所述表达式之间的至少一个差异;
创建包括所述至少一个差异的子集的第二模板;
从所述至少一个差异减去所述第二模板,以标识所述第二模板与所述至少一个差异之间的第二差异;
确定所述第二模板是否存在于所述高速缓存中;
响应于确定所述第二模板存在于所述高速缓存中,获得对所述第二模板的第二高速缓存引用;
响应于确定所述第二模板不存在于所述高速缓存中,将所述第二模板存储在所述高速缓存中并获得对所述第二模板的所述第二高速缓存引用;以及
将所述第二高速缓存引用和所述第二差异添加到所述捆绑以创建嵌套捆绑。
3.根据权利要求1所述的方法,其中所述标准表示是表达式树。
4.根据权利要求1、2或3所述的方法,还包括创建所述模板的指纹。
5.根据权利要求1、2或3所述的方法,其中创建所述模板包括:
标识所述表达式的不太可能改变的部分;以及
将那些部分中的至少一些部分放置到所述模板中。
6.根据权利要求5所述的方法,其中所述表达式的不太可能改变的所述部分通过将所述表达式与模板的历史进行比较而被标识。
7.根据权利要求1、2或3所述的方法,其中创建所述模板还包括:
检索至少一个模板选择规则;
基于所述至少一个模板选择规则来选择所述子集。
8.根据权利要求1、2或3所述的方法,其中创建所述模板还包括:
将所述表达式与多个候选模板进行比较;以及
选择所述多个候选模板中的与所述表达式的最大部分匹配的候选模板作为所述模板。
9.一种计算系统,包括:
处理器和可执行指令,所述可执行指令当由所述系统执行时使所述系统执行包括以下的操作:
选择处于标准表示格式的表达式;
创建包括所述表达式的子集的模板;
确定所述模板是否存在于高速缓存中;
响应于确定所述模板存在于所述高速缓存中,获得对所述模板的高速缓存引用;
响应于确定所述模板不存在于所述高速缓存中,将所述模板存储在所述高速缓存中并获得对所述模板的所述高速缓存引用;
从所述表达式减去所述模板,以标识所述模板与所述表达式之间的差异;以及
创建包括所述高速缓存引用以及所述模板与所述表达式之间的所述差异的捆绑。
10.根据权利要求9所述的系统,其中所述指令使所述系统执行包括以下的另外的操作:
选择所述模板与所述表达式之间的至少一个差异;
创建包括所述至少一个差异的子集的第二模板;
从所述至少一个差异减去所述第二模板,以标识所述第二模板与所述至少一个差异之间的第二差异;
确定所述第二模板是否存在于所述高速缓存中;
响应于确定所述第二模板存在于所述高速缓存中,获得对所述第二模板的第二高速缓存引用;
响应于确定所述第二模板不存在于所述高速缓存中,将所述第二模板存储在所述高速缓存中并获得对所述第二模板的所述第二高速缓存引用;以及
将所述第二高速缓存引用和所述第二差异添加到所述捆绑以创建嵌套捆绑。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201780048062.1/1.html,转载请声明来源钻瓜专利网。