工具/软件:TI C/C++编译器
最近,我们的一个应用程序的内存被耗尽。 我们采取了两种方法来解决该问题:
1)分析MAP文件并删除不可执行代码所包含的任何函数。 这实际上解决了问题。
2)另一个途径是提高优化水平。 从关闭到0-Register优化通过25 % 减少代码大小,一级为我们提供了另一个6 % ,每个附加级别的帮助介于-1和4 % 之间。
我们讨论了优化级别。 我们一致认为,我们应远离更高的优化级别,因为:
1)逐步执行代码变得越来越困难,有时甚至几乎不可能
2)我们不信任上层。
编译器编写者需要在某些时候变得相当棘手,其中一些技巧可能没有经过充分的测试。
经验表明,在更新到新版本的编译器时,中断的是高度优化的代码。
但是,如果我们遇到紧急情况,仅在第一级优化中节省25 % 的成本非常诱人。
那么这些优化级别定义在哪里? 如果没有,什么是'注册优化'?
我可以猜函数参数和寄存器是否得到了更优化,本地变量与栈与寄存器是否是一样? 还有什么?
如何更改带CCS的逐步执行C代码? 这些差异是否只能在浏览汇编程序窗口时看到?