[发明专利]用于优化应用程序的并行构建的方法和系统无效
申请号: | 201210356575.8 | 申请日: | 2012-09-21 |
公开(公告)号: | CN103677754A | 公开(公告)日: | 2014-03-26 |
发明(设计)人: | 纪金松;蒋健;张嗣元;朱鸿伟 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F9/45;G06F11/36 |
代理公司: | 中国国际贸易促进委员会专利商标事务所 11038 | 代理人: | 李镇江 |
地址: | 美国*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 优化 应用程序 并行 构建 方法 系统 | ||
技术领域
本发明涉及计算机应用程序的编译,更具体地,涉及一种优化应用程序的并行构建的方法、系统以及使用该系统的编译系统和计算机系统。
背景技术
在当今世界,应用程序无处不在。小到计算机中的计算器程序,大到股票交易系统都是应用程序的一种。而在计算机程序的日常开发中,构建(build)扮演了重要角色。构建是指调用编译器去分析源代码,生成目标代码并生成二进制代码的整个过程。当构建大型应用程序(例如日常驱动程序)时,开发人员不得不等待一些时间。该等待时间有可能是数小时,也可能是数天。
当今,开发人员一般使用并行构建来缩短构建时。例如,gmake是Linux下的一款程序编译工具,配合makefile的使用,以对程序进行编译。Makefile是共享文件系统中的构建文件,它是应用程序的底层文件,在应用程序编写后伴随应用程序而存在。应用程序中各命令执行的顺序存储在makefile中。以gmake-4为例,gmake-4可以同时取4条指令并行执行。例如,gmake按照makefile中指令的执行顺序先取出4条命令并并行执行。当某一路的命令执行完毕后,再取出下一条命令在该路上执行,从而提高构建的效率。
但是,有时并行构建会出现一些问题。例如,在串行构建模式下应用程序的构建没有问题,而在并行构建时却不能成功完成构建。这种问题出现的原因例如是一些命令读/写同一个文件,但这种读/写关系是隐性的。因此gmake按照makefile中的命令顺序取出命令时很难发现,导致例如执行依赖前一命令对某文件的读/写的后一命令与前一命令并行执行,甚至在前一命令之前执行。当这种问题出现时,很难跟踪错误。开发人员往往要花很长时间来进行调查并消除问题。
为了对并行构建发生错误进行跟踪调试错误源,现有技术中已经针对不同厂商的并行构建工具开发出错误跟踪调试工具,但是这些工具不具有通用性,其中一些不能完全消除由于命令执行乱序引起的错误。
发明内容
本发明解决的一个问题是减少在命令的并行构建中由于具有对同一文件的读/写关系的命令执行乱序引起的错误。
根据本发明的一个方面,提供了一种优化应用程序的并行构建的方法,包括:在命令的并行执行中,记录命令顺序号及命令的访问信息;基于命令顺序号及命令的访问信息检测执行冲突;以及对执行冲突所涉及的命令进行重新执行。
根据本发明的另一个方面,提供了一种优化应用程序的并行构建的系统,包括:记录装置,被配置成在命令的并行执行中,记录命令顺序号及命令的访问信息;检测装置,被配置成基于命令顺序号及命令的访问信息检测执行冲突;以及重新执行装置,被配置成对执行冲突所涉及的命令进行重新执行。
根据本发明的另一个方面,提供了一种编译系统,包括:编译器,被配置成编译应用程序;以及优化装置,被配置成使用上述系统来对所述编译器的编译进行优化。
根据本发明的另一个方面,还提供了一种计算机系统,包括:共享文件系统,被配置成并行构建应用程序;以及上述编译系统。
本发明的一个有益效果是,本发明的并行构建的优化方案可以适用于各个厂商的构建工具,具有通用性。
本发明的另一个有益效果是,由于根据文件系统在执行命令时获得的信息来检测命令执行冲突,因此检测的成功率很高。
本发明的再一个有益效果是,由于不再需要开发人员的对进行额外的跟踪调试,所以维护成本低而便利性高。
本发明的这种检测对于用户是完全透明的。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。
图2示出了现有技术的并行构建中存在的问题。
图3示出了本发明的一个实施例的优化应用程序的并行构建的方法的流程图。
图4示出了本发明的一个实施例的检测命令执行冲突的过程的流程图。
图5示出了本发明的一个实施例的优化应用程序的并行构建的时序图。
图6示出了本发明的一个实施例的优化应用程序的并行构建的系统框图。
图7示出了使用了本发明的编译系统的框图。
图8示出了使用了本发明的计算机系统的框图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210356575.8/2.html,转载请声明来源钻瓜专利网。