本帖最后由 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小很多。 
 
结束。 
 
 
 |   
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册 
 
 
 
×
 
     
  
 |