打印
[STM32]

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

[复制链接]
2537|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
vyxc|  楼主 | 2019-9-6 23:17 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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的编译设置:




经过几次的编译测试得到以下数据:
 
优化选项
O0
O1
O2
O3
Ofast
Os
Oz
ARMCC  V6.9
bin大小(KB)
131.13
90.03
95.54
98.54
97.45
87.84kB
85.47
编译用时(秒)
7.23
7.52
7.99
8.3
8.4
8.17
7.64
ARMCC  V5.06
bin大小(KB)
77.18
64.49
61.19
61.44
- -
- -
- -
编译用时(秒)
7.93
8.25
8.15
9.68
- -
- -
- -
GCC  7.2
bin大小(KB)
176
135
136
144
- -
129
- -
编译用时(秒)
3.49
3.63
3.68
4.12
- -
3.96
- -


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

结束。


使用特权

评论回复

相关帖子

沙发
R2D2| | 2019-9-6 23:41 | 只看该作者
没有最牛的编译器——IAR的测试,必须给个差评。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

0

粉丝