应用编译优化有什么用

应用编译优化有什么用,第1张

应用编译优化的作用是:提高运行能力因为程序优化前,有3个变量需要3个寄存器,一次乘法运算。程序优化后,只有1个变量需要一个寄存器,没有乘法运算。

并且这个优化看起来很微不足道,但实际上用途很广。为了程序的可读性和可维护性,大多数程序员应该还是会选用第一种方式。

写3行程序而不是直接甩下一行int ticks = 491520让后来读程序的人摸不到头脑。有了编译器的优化,程序员既可以写出易读的程序又不必担心性能受影响。

尤其是在嵌入式领域,很多低端芯片根本就没有硬件乘法器,如果程序不做上述优化可能这3行代码需要几十个cycle,优化过后一个cycle就搞定。

应用编译优化的级别:

第一级:代码调整。

代码调整是一种局部的思维方式;基本上不触及算法层级;它面向的是代码,而不是问题; 所以:语句调整,用汇编重写、指令调整、换一种语言实现、换一个编译器、循环展开、参数传递优化等都属于这一级。

第二级:新的视角。

新的视角强调的重点是针对问题的算法;即选择和构造适合于问题的算法。

第三级:表驱动状态机

将问题抽象为另一种等价的数学模型或假想机器模型,比如构造出某种表驱动状态机;这一级其实是第二级的延伸,只是产生的效果更加明显,但它有其本身的特点。

首先把经常用到的“相同的功能”、“重复的 *** 作”写成一个一个子程序或函数,在用到的地方放一条调用指令就可以了。

然后,你还要了解每条指令的构造。比如汇编里面你明知道长调用会比短调用占空间,那能用短调用的地方就不要用长调用了。又比如在C语言里面,能定义为字节变量的数据就不要定义为整型变量也是一样的道理。

单片机高手团为你解答

第一步:

编译release版本

第二步:

strip 命令

扩展

整优化等级

通过修改默认优化等级方式减少体积,以cpu换空间,如果不是必要,建议不要改

在Cargo.toml中新增下面配置

开启 LTO

减少体积,增加链接时间也是一个取舍问题

在Cargo.toml中新增下面配置


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8005873.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存