[发明专利]使用动态编程语言的元数据的运行时优化方法和系统有效
申请号: | 201380007185.2 | 申请日: | 2013-01-31 |
公开(公告)号: | CN104081350B | 公开(公告)日: | 2017-06-23 |
发明(设计)人: | G·巴瑞克罗;F·J·皮茨罗 | 申请(专利权)人: | 苹果公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455 |
代理公司: | 中国国际贸易促进委员会专利商标事务所11038 | 代理人: | 冯玉清 |
地址: | 美国加*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 使用 动态 编程 语言 数据 运行 优化 | ||
1.一种用于运行时编译的计算机实现的方法,包括:
针对与第一键相关联的源代码的多个部分推测生成编译代码,其中,从所述源代码编译的代码包括推测生成的所述编译代码;
利用运行时状态在运行时期间执行从所述源代码编译的所述代码,其中所述运行时状态包括用一个或多个键索引的一个或多个散列数据,所述一个或多个键包含所述第一键,其中所述第一键具有元数据,所述元数据描述与所述运行时状态下的所述散列数据有关的所述第一键的一个或多个全局属性的断言;
更新所述第一键的元数据以保持所述第一键的全局属性与所述运行时状态之间的一致性;
确定与所述第一键相关联的所述推测生成的编译代码是否因所述第一键的已更新的元数据而失效,以保证所述推测生成的编译代码具有可靠性,而不会在所述散列数据上引发查找操作;以及
如果所述推测生成的编译代码失效,针对与所述第一键相关联的所述源代码的所述多个部分更新从所述源代码编译的所述代码,其中执行已更新的代码而不执行所述推测生成的编译代码。
2.根据权利要求1所述的方法,其中使用被导向所述推测生成的编译代码的执行路径来执行从所述源代码编译的所述代码而不执行查找操作,并且其中执行已更新的代码以重新导向来自所述推测生成的编译代码的所述执行路径,所述重新导向的执行路径包括在所述运行时状态的所述散列数据中的查找操作。
3.根据权利要求1所述的方法,其中所述第一键的所述全局属性具有值,并且其中所述确定与所述第一键相关联的所述推测生成的编译代码是否因所述第一键的已更新的元数据而失效基于所述值是否满足指示所述第一键当前未在运行时状态下的现有数据对象的任何一者中被使用或标引的条件。
4.根据权利要求3所述的方法,其中所述推测生成的编译代码基于所述第一键的所述全局属性的初始值。
5.根据权利要求4所述的方法,其中所述第一键的所述全局属性指示是否在所述运行时状态下使用所述第一键来索引所述散列数据,并且其中具有所述初始值的所述全局属性指示所述第一键当前未在所述运行时状态下使用。
6.根据权利要求1所述的方法,其中根据从所述源代码编译的所述代码的所述执行来更新所述运行时状态下的所述一个或多个散列数据,并且其中根据已更新的所述一个或多个散列数据来更新所述元数据以保持所述一致性。
7.根据权利要求1所述的方法,其中所述第一键从所述源代码进行概要分析。
8.一种用于运行时编译的系统,包括:
用于针对与第一键相关联的源代码的多个部分推测生成编译代码的装置,其中,从所述源代码编译的代码包括推测生成的所述编译代码;
用于利用运行时状态在运行时期间执行从所述源代码编译的所述代码的装置,其中所述运行时状态包括用一个或多个键索引的一个或多个散列数据,所述一个或多个键包含所述第一键,其中所述第一键具有元数据,所述元数据描述与所述运行时状态下的所述散列数据有关的所述第一键的一个或多个全局属性的断言;
用于更新所述第一键的元数据以保持所述第一键的全局属性与所述运行时状态之间的一致性的装置;
用于确定与所述第一键相关联的所述推测生成的编译代码是否因所述第一键的已更新的元数据而失效,以保证所述推测生成的编译代码具有可靠性,而不会在所述散列数据上引发查找操作的装置;以及
用于如果所述推测生成的编译代码失效则针对与所述第一键相关联的所述源代码的所述多个部分更新从所述源代码编译的所述代码的装置,其中执行已更新的代码而不执行所述推测生成的编译代码。
9.根据权利要求8所述的系统,其中使用被导向所述推测生成的编译代码的执行路径来执行从所述源代码编译的所述代码而不执行查找操作,并且其中执行已更新的代码以重新导向来自所述推测生成的编译代码的所述执行路径,所述重新导向的执行路径包括在所述运行时状态的所述散列数据中的查找操作。
10.根据权利要求8所述的系统,其中所述第一键的所述全局属性具有值,并且其中所述确定与所述第一键相关联的所述推测生成的编译代码是否因所述第一键的已更新的元数据而失效基于所述值是否满足指示所述第一键当前未在运行时状态下的现有数据对象的任何一者中被使用或标引的条件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苹果公司,未经苹果公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201380007185.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:正常与重试数据发射之间的差别格式化
- 下一篇:经改进的插入指令的装置和方法