ARM Cortex工具链速度优化

ARM Cortex工具链速度优化,c,arm,cortex-m3,C,Arm,Cortex M3,对于C/C++的Arm Cortex体系结构,有一个完整的框架和工具链 最近,在我的STM Cortex-M3上遇到了一个硬性的速度优化问题,我开始怀疑不同供应商之间在输出代码执行速度方面是否确实存在性能差异,正如他们中的一些人所声称的那样 更具体地说,在GNU-C复印机和商用复印机之间 有人从这个意义上对不同的编译器进行了比较吗 从实用角度讲,商业IDE生成的二进制文件比GCC生成的二进制文件优化程度更高,代码大小更小,差别虽然存在,但并不是很大,通过一些优化,甚至可能不费吹灰之力,我个人认为

对于C/C++的Arm Cortex体系结构,有一个完整的框架和工具链

最近,在我的STM Cortex-M3上遇到了一个硬性的速度优化问题,我开始怀疑不同供应商之间在输出代码执行速度方面是否确实存在性能差异,正如他们中的一些人所声称的那样

更具体地说,在GNU-C复印机和商用复印机之间


有人从这个意义上对不同的编译器进行了比较吗

从实用角度讲,商业IDE生成的二进制文件比GCC生成的二进制文件优化程度更高,代码大小更小,差别虽然存在,但并不是很大,通过一些优化,甚至可能不费吹灰之力,我个人认为,对于商业工具链和基于GCC的工具链,您不会发现任何明确的基准,速度和大小确实取决于许多因素。

这是一个以讨论为导向的主题,可能并不完全重复:@coffee-是的,我知道这一点。这就是为什么我要求的是基准测试,而不是意见,尽管我也很感激。m3是armv7m,所以它支持armv7m thumb2扩展,而不限于原始thumb。对于OP来说,是的,同一个编译器以及不同的编译器将从相同的高级源代码生成截然不同的代码,特别是与性能相关的代码。还有其他考虑因素,只要以最快的速度运行微控制器,您就必须在许多flash实现中添加等待状态,但并非所有实现都有此问题,因此您的代码速度可能仍然受到限制。例如,可以尝试从sram运行优化良好的代码并比较速度……我发现这一分析非常有洞察力。很难找到比较,因为大多数编译器供应商在其许可协议中禁止发布基准。