[发明专利]用于改进程序性能的字段专业化系统和方法在审
申请号: | 201680020066.4 | 申请日: | 2016-03-31 |
公开(公告)号: | CN107851003A | 公开(公告)日: | 2018-03-27 |
发明(设计)人: | 理查德·T·斯诺德格拉斯;索木亚·K·德布雷;张瑞;斯蒂芬·托马斯;肖恩·梅森 | 申请(专利权)人: | 数据仓库投资有限公司;代表亚利桑那大学的亚利桑那董事会 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F17/30 |
代理公司: | 北京德崇智捷知识产权代理有限公司11467 | 代理人: | 周蕾 |
地址: | 美国亚*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 改进 程序 性能 字段 专业化 系统 方法 | ||
1.一种用于改善计算机程序代码的性能的计算机实现方法,包括:
基于程序表示(PR),即抽象语法树或计算机程序代码的其它实施方式,识别计算机程序代码中的变量的不变间隔;
根据PR和计算机程序的生态系统规范推导出计算机程序内的程序交互;
基于PR、用于计算机程序代码中的变量的识别的不变间隔以及推导的程序交互来推导域断言;
基于计算机程序代码中的变量的不变间隔、PR、与计算机程序相关联的一个或多个执行概要、推导出的程序交互和推导出的域断言来识别一个或多个候选片段;
基于一个或多个候选片段生成专用的计算机程序代码;以及
基于生成的专用计算机程序代码修改计算机程序代码;以及
隐藏专用的计算机程序代码。
2.根据权利要求1所述的计算机实现方法,其特征在于以下特征中的一个或两个:
(a)其中所识别的不变间隔跨越多个执行;以及
(b)其中所识别的不变间隔包括用于特定变量的不变间隔的至少一个集合,其中所述集合中的所有不变间隔共享相同的起始节点。
3.根据权利要求1或2所述的计算机实现方法,其中所述一个或多个候选片段中的每一个包括(a)由所述PR识别的代码间隔,或(b)一组不变量和一组每个变量的可能值。
4.根据权利要求1-3中任一项所述的计算机实现方法,其中所述一个或多个候选片段中的每一个包括所述候选片段的适当使用期限,并且其中所述一个或多个候选片段中的每一个优选地包括在候选片段的适当使用期限内采用的建议优化。
5.根据权利要求1-4中任一项所述的计算机实现方法,其中生成专用计算机程序代码包括(a)在所述计算机程序内的适当位置插入代码以创建所述专用计算机程序代码,从而调用所述专用计算机程序代码并破坏专用计算机程序代码,或者(b)创建用于将任意字符串与给定字符串模式相匹配的专用函数,或者包括使用元指定器遍历解释数据结构和使用热插拔来转换现有的专用计算机程序代码,或涉及查询,或包括消除计算机程序代码中的分支,从而减小计算机程序代码的大小,或者包括利用数值来平均分配字段指定器(Spiff)数据段,其中然后通过在计算机程序代码内的所有输入行计算相应的聚合函数来重新使用Spiff数据段,以消除每行的存储器分配,其中数值由每行可支持的数字最大位数定义,或者包括利用存储计算机程序的磁盘或存储器页面内的不变量来重新组织页面读取后的数据布局,并优化数据局部性。
6.根据权利要求1-5中任一项所述的计算机实现方法,其中所述专用计算机程序代码在运行时创建并在稍后调用,并且可选地还包括确定在给定的执行中是否出现所识别的不变间隔的任何违规。
7.一种配置为改善计算机程序的性能的系统,包括:
不变量探测器,基于计算机程序的程序表示(PR),确定计算机程序中的变量的不变间隔;
交互推导器,基于PR和计算机程序的生态系统规范推导出计算机程序内的程序交互;
域断言推导器,基于PR、识别的计算机程序中变量的不变间隔以及推导出的程序交互推导出域断言;
片段探测器,基于计算机程序中的变量的不变间隔、PR、与计算机程序相关联的一个或多个执行概要、推导出的程序交互和推导出的域断言来识别一个或多个候选片段;
字段指定器(Spiff)制造器,基于一个或多个候选片段生成专用计算机程序代码;以及
专用源,接收生成的专用计算机程序代码,以基于生成的专用计算机程序代码来修改计算机程序代码。
8.根据权利要求7所述的系统,其中所述不变量探测器对所述PR执行静态分析以识别不变间隔。
9.根据权利要求7或8所述的系统,其中所识别的不变区间包括用于特定变量的不变间隔的至少一个集合,其中所述集合中的所有不变间隔共享相同的起始节点。
10.根据权利要求7-9中任一项所述的系统,还包括不变检查,确定在给定执行中是否发生所识别的不变间隔的任何违规。
11.根据权利要求7-10中任一项所述的系统,其中所述一个或多个候选片段中的每一个包括一组不变量和一组每个变量的可能值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于数据仓库投资有限公司;代表亚利桑那大学的亚利桑那董事会,未经数据仓库投资有限公司;代表亚利桑那大学的亚利桑那董事会许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201680020066.4/1.html,转载请声明来源钻瓜专利网。