开源与商业编译器

使用开源软件和自由软件似乎深深扎根于软件开发人员的基因之中。如果选择付款或建造,开发商通常会选择建造。当涉及到编译器时,构建自己的编译器将花费很长时间,并且容易出错,因此开发人员选择了开源工具(例如GCC)来节省商业编译器的数千美元投资。通常的理由是他们做同样的事情,那么为什么要付钱呢?有趣的事实是,商业编译器为开发人员提供了许多好处,其中最重要的是性能改进。

容易想象一个编译器与其他任何一个都一样。毕竟,难道不是所有用于编译C代码的优化算法都已经有将近50年的文献记载和出版了吗?对于已编译的代码在目标微控制器上的运行情况,开发人员确实没有一种比较一个编译器与另一个编译器的好方法。在过去的几年中,EEMBC发布了一个称为CoreMark的新基准,它使开发人员可以对其微控制器进行性能测试,并查看其性能如何。酷的是,我们还可以在同一微控制器的不同编译器上编译基准代码,并查看所生成代码的性能差异。

在深入研究有趣的结果之前,了解一点有关CoreMark很有用。由于CoreMark是用C编写的,旨在测试核心能力以处理常见的嵌入式软件任务(例如处理列表,状态机和矩阵),因此它对低级开发人员很感兴趣。基准测试软件可以移植到任何微控制器或处理器上,一旦执行,就可以提供每MHz CoreMarks和CoreMarks的度量。通常,结果越高,处理器的性能越好。

开发人员不一定需要自己执行基准测试,而是可以检查CoreMark网站以查看是否列出了他们的处理器(和编译器)(请在此处检查)。尽管确实存在重复,但有时使用不同或相似的工具链,已经提交了500多个不同的基准。查看结果,开发人员可以选择并找到一些使用各种编译器进行基准测试的微控制器。以下是一些示例:

01-CoreMark

As you can see from the image, the exact same processor running the exact same code compiled by different compilers results in completely different performance results. Unfortunately, there aren’t many benchmarks in the list that compare GCC to commercial compilers. The 上 es that do exist are for application processors which are outside the range for microcontrollers which are more ARM Cortex-M class. As it turns out, the Renesas Synergy™ 平台类 SSP datasheet has an interesting comparison using CoreMark. They performed the benchmark between their open source GCC toolchain and their IAR Embedded Workbench for Synergy toolchain. The results can be seen below (The table is taken from chapter 15 in the datasheet located at //www.renesas.com/en-eu/doc/products/renesas-synergy/doc/r01ds0272eu0111_synergy_ssp.pdf):

01-瑞萨

看完结果后,它变得非常明显:所有编译器都不相同。实际上,商业编译器的性能往往比GCC高出50%!使用商用编译器,开发人员可以从字面上选择72 MHz部分中的48 MHz部分,并获得完全相同的性能,同时节省硬件成本。下次您打算默认为GCC时,您可能想停止计算一下,弄清楚商用编译器从长远来看是否可以为您省钱。

If you are interested in learning more about CoreMark and the resulting differences in performance between different compilers I highly recommend you check out the CoreMark white paper located at http://www.eembc.org/techlit/coremark-whitepaper.pdf. The results section is particularly illuminating.

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.