Acovea实现了遗传算法寻找“最佳”选项编译与海湾合作委员会的C和C ++编译器程序。
ACOVEA(通过进化算法编译器选项分析)实现了遗传算法来找到“最好”的编译选项与GNU编译器集合(GCC)的C和C ++编译器程序。
“最佳”,在这种情况下,被定义为那些产生从一个给定源代码最快可执行程序的选项。 Acovea是可以扩展到测试其他的编程语言和非GCC编译一个C ++框架。
我设想Acovea作为优化工具,在目的上分析相似。传统的功能层次分析识别算法,最有影响力的一个程序的性能; Acovea,然后应用到那些算法来发现产生最快代码编译器标志和选项。
Acovea也用于测试的标志的组合悲观的相互作用,以及用于测试编译器的可靠性是有用的。
现代软件是很难理解和验证通过传统方式。数百万行的代码产生含有复杂交互的应用程序,不畏简单的描述或蛮力调查。
在导游带领下,确定性的测试方法依赖于人的测试设想的行动,每一个可能的组合 - 给定的软件复杂性的一个不切实际的主张。然而,尽管复杂,我们需要回答关于现代,大型软件的重要问题。
有什么重要的问题排序?考虑GNU编译器集合。我写的文章,基准代码生成,任务困难重重,由于不同的编译器所提供的无数的选择。对于我的标准有什么意义,我需要了解哪些选项组合产生速度最快的代码,一个给定的应用。
寻找“最佳”选项集听起来像一个简单的任务,因为GCC文档的程度和GCC开发者社区的传统智慧。嗯,如果只是这么简单! GCC的文档,而广泛的,也是老老实实不精确。
我很欣赏这种风格文件;不像许多商业供应商,谁做绝对陈述自己的产品的“质量”,海湾合作委员会的资料员承认在不确定性,如何把不同选项来改变代码生成。实际上,代码生成是完全依赖于应用的被编译的类型和目标平台。产生快速的可执行代码对一个信号源代码的选项可能是有害的另一个程序的性能。
“传统智慧”在我的收件箱到达每当我发布一个新的文章。从礼貌的坚持到粗鲁,这些电子邮件包含生产快速代码矛盾的建议。
在案件的绝大多数,这种传闻断言缺乏其有效性的任何正式的证据,而且,往往不是,建议“改进”是无效或有害的。它已成为越来越明显的是没有一个人--myself包括 - 确切地知道如何将所有这些GCC选项共同努力生成的程序代码。
我寻求优化的圣杯 - 但到底什么是优化?理解这个问题是找到解决办法的第一步。
优化试图产生从源代码的“最佳”的机器代码。 “最佳”是指不同的事情,不同的应用;的信息的数据库铲块,而一个科学应用涉及快速和精确的结果;对于嵌入式系统首先要关注的可能是代码的大小。
它很可能是小的代码是快,快码准确。优化远非一种精确的科学,因为硬件和软件配置的多样性。
优化算法可以很简单,比如去掉一个循环不变的,复杂的如检查整个程序,以消除全球通用的子表达式。很多优化改变什么程序员写为更有效的形式,而制造底层改变细节的效率相同的结果;使用基础硬件的具体特点,如特殊指令集等“优化”产生代码。
内存体系结构,管道,导通和关断芯片的高速缓存 - 所有影响的方式是不明显使用高级语言编程代码的性能。优化的可能似乎产生更快的代码可能,实际上,创建大型的代码,导致更多的缓存未命中,从而降低性能。
即使是最好的手工调整的C代码包含解释领域;没有绝对的,一对一的C语句和机器指令之间的对应关系。几乎源代码的任何序列可被编译为不同的 - 但功能上等同的 - 机器指令具有不同的尺寸和性能特性流。
内联函数是这种现象的一个典型的例子:更换电话与功能的代码本身可能会产生更快的程序功能,而且还可能会增加程序的大小。增加程序大小,可反过来防止算法从内部高速缓存存储器嵌合,从而由于高速缓存未命中的程序放缓。
请注意我用的词黄鼠狼“可能” - 内联小函数有时允许其他优化算法有机会进一步改善当地条件的代码,生产速度更快,更小的代码。
优化并不简单或明显,算法组合可能会导致意想不到的结果。这使我回到了一个问题:对于任何给定的应用程序,什么是最有效的优化选项?
什么是新的,在此版本:
·在非自由许可证的微小变化。
·支持已经增加了对libcoyotl和libevocosm的最新版本。
按类别搜索
热门软件
Acovea
类似的软件
Test Environment Toolkit
3 Jun 15
robotframework-ride
20 Feb 15
tissue
15 Apr 15
pytest-marker-bugzilla
20 Feb 15
显影剂的其他软件 Scott Robert Ladd
Acovea/GTK
3 Jun 15
意见 Acovea
按类别搜索
热门软件
-
nose-skipreq 12 May 15
-
Testify 20 Feb 15
-
ESC/Java2 3 Jun 15
-
NoseKay 11 May 15
-
CppUnit 17 Feb 15
-
lava-fastmodels 14 Apr 15
-
rgf 14 Apr 15
评论没有发现