vyxc 发表于 2019-9-6 23:17

keil自带ARMCC V5和V6 和 GCC编译器 编译用时和目标文件大小对比

本帖最后由 vyxc 于 2019-9-6 23:40 编辑

经常在各个群里看到有人说ARMCC的V6编译器 编译速度有多快,编译出来的bin体积有多小。而在我的映像里 V6并没有这么神。

为了客观的对比各个编译器,我做了个简单的测试。

条件:
1:一样的工程,除了CMSIS需要不一样的头文件之外,所有用户代码完全一致。
2:用秒表计时,开始计时和全部重新编译按钮同时按下,编译完成时停止。因为手动掐表,肯定会有误差,但是大致的可以参考。(正常使用的时候 零点几秒的时间差对使用体验的影响可以忽略)
3:ARMCC的V5 和 V6 都是keil的自带编译器,所以 IDE 是keil。 GCC的IDE是visual studio 2017 + visualGDB插件。
4:使用台式机编译,因为笔记本可能过热降频影响测试数据。CPU是 E3 1230 V2   4核8线程

编译的文件列表:


ARMCC V5的编译设置:


ARMCC V6的编译设置:



GCC的编译设置:




经过几次的编译测试得到以下数据:

 优化选项O0O1O2O3OfastOsOz
ARMCCV6.9bin大小(KB)131.1390.0395.5498.5497.4587.84kB85.47
编译用时(秒)7.237.527.998.38.48.177.64
ARMCCV5.06bin大小(KB)77.1864.4961.1961.44- -- -- -
编译用时(秒)7.938.258.159.68- -- -- -
GCC7.2bin大小(KB)176135136144- -129- -
编译用时(秒)3.493.633.684.12- -3.96- -


可以得知,GCC的编译速度是最快的(KEIL和visualGDB都是开启多线程编译的)。而bin体积最小的是ARMCC V5。代码的执行效率没有测。
而ARMCC V5和V6对比,编译用时差异不大,手动掐表可以认为是误差范围内。但是bin体积V5比V6小很多。

结束。


R2D2 发表于 2019-9-6 23:41

没有最牛的编译器——IAR的测试,必须给个差评。
页: [1]
查看完整版本: keil自带ARMCC V5和V6 和 GCC编译器 编译用时和目标文件大小对比