[发明专利]用于CPU利用率和代码重构的查询优化器有效
申请号: | 201780035355.6 | 申请日: | 2017-05-31 |
公开(公告)号: | CN109313547B | 公开(公告)日: | 2022-04-15 |
发明(设计)人: | E·艾瓦尼;G·塔米尔;A·埃鲁克;E·科勒 | 申请(专利权)人: | 微软技术许可有限责任公司 |
主分类号: | G06F8/72 | 分类号: | G06F8/72 |
代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 王茂华 |
地址: | 美国华*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 cpu 利用率 代码 查询 优化 | ||
提供了一种用于提高程序代码中的查询效率的方法、系统、设备和计算机程序产品。在程序代码中检测到多个查询。通过其评估程序代码中的查询的惰性被扩展。查询被分解为多个查询部件。包括多个规则的规则集被应用于查询部件,以生成对多个查询的功能上等效的查询集,该功能上等效的查询集相对于多个查询更高效地评估。
背景技术
存在各种类型的软件开发应用以供软件开发者使用来开发软件。集成开发环境(IDE)是一种在一个套装中包含多个开发工具的软件开发应用。IDE可以包括诸如源代码编辑器(“代码编辑器”)、建立自动化工具、以及调试器等工具。IDE的示例包括由加拿大渥太华的Eclipse基金会开发的EclipseTM、由加拿大温哥华的ActiveState开发的ActiveStateKomodoTM、由捷克共和国的JetB rains开发的IntelliJ IDEA、由加利福尼亚州红木城的甲骨文公司开发的Oracle JDeveloperTM、由甲骨文公司开发的NetBeans、由加利福尼亚州旧金山的Codenvy开发的CodenvyTM、由加利福尼亚州库比蒂诺的苹果公司开发的以及由华盛顿州雷德蒙的微软公司开发的
许多现代编程语言本身支持对数据的查询。例如,由微软公司开发的Microsoft.NET Framework支持LINQ(语言集成查询)形式的查询,而由加利福尼亚州红木城的甲骨文公司开发的支持流形式的查询。编程语言中对查询的本机支持使开发者能够专注于其程序代码的逻辑部分,因为集成查询功能负责处理对他们的查询的实际实现。这使得开发者可以加速他们的编码。
然而,对低效查询的后果不了解或了解不多可能导致低效的程序代码开发。此外,由于当今开发软件的最佳实践,开发者倾向于在他们的代码中将较大的方法/过程拆分成较小的方法/过程以提高可读性,这也会导致在程序代码中查询的低效。
发明内容
提供本发明内容以便以简化的形式对将在下面具体实施方式中进一步描述的一系列概念进行介绍。发明内容既不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
提供了用于提高程序代码中的查询效率的多种方法、系统、设备和计算机程序产品。诸如当在代码编辑器中输入程序代码时或在编译时间期间,在程序代码中检测到多个查询。在程序代码中评估查询的惰性(laziness)被扩展。此外,包括多个规则的规则集被应用于检测到的查询,以生成功能上等效的查询集,该功能上等效的查询集更高效地对检测到的查询进行评估。
包括在规则集中的规则可以以任意方式生成,包括由用户手动生成或由算法自动生成,诸如机器学习、代码示例的大数据分析等。一组这样的规则可以显著改进开发者日常工作中出现的最常见错误。
单个功能上等效的查询集可以被生成并输入到程序代码中来代替一个或多个现有查询,或者多个候选的功能上等效的查询集可以被生成,从多个候选功能上等效的查询集中选择要被输入到程序代码中的一个查询集。用户可以选择要被输入到程序代码中的候选的功能上等效的查询集,或者候选的功能上等效的查询集可以被自动选择。候选的功能上等效的查询集的选择可能受到在开发期间(例如,在代码输入期间或在编译时间)或者在运行期间是否进行选择的影响。在运行期间,可以(至少部分地)基于运行因素(例如,执行条件,诸如网络可用性、可用处理能力等)来从多个候选中选择候选的功能上等效的查询集,以作为到程序代码中的输入。
下面参照附图详细描述本发明的另外的特征和优点、以及本发明的各个实施例的结构和操作。应该注意的是,本发明不限于本文所述的特定实施例。本文提供这些实施例仅用于说明性目的。基于本文包含的教导,对于相关领域的技术人员来说,另外的实施例将是显而易见的。
附图说明
包含在本文中并形成说明书一部分的附图示出了本申请的实施例,并且与说明书一起进一步用于解释实施例的原理并且使相关领域的技术人员能够制造并且使用实施例。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201780035355.6/2.html,转载请声明来源钻瓜专利网。