大致在去年我写了一篇关于在Codewarrior下使用局部优化指令的文章,可以使用户平衡代码空间限制和功能异常的问题(即遇到程序执行效率较差或者代码空间受限的话我们会想到打开编译器的优化,但是如果在编译器中打开了全局优化则可能带来某些功能的异常,这是我们常会遇到的问题),这一年时间下来,突然发现很多用户在一个项目周期的最后都遇到了类似的困局,最后我都用局部优化的概念帮他们解决了,当然用户使用的IDE开发环境不一样,局部优化的指令稍有所不同,所以最近想想还是有必要写在这里方便以后分享给遇到同样问题的博友们,下面以Codewarrior、IAR和Keil这三大常用的IDE为例,娓娓道来他们中局部优化指令的使用方法。
1. Codewarrior:
Codewarrior下的使用方法见我之前的博客,链接为
http://www.ippipp.com/article/id/48623
2. IAR:
IAR下的局部优化指令的用法如下
#pragma optimize=speed
int SmallAndUsedOften()
{/* Do something here. */
}
#pragma optimize=size
int BigAndSeldomUsed()
{/* Do something here. */
}
#pragma optimize=none /* Selection bwtween none, low, medium, and high */
int OpExampleUsed()
{/* Do something here. */
}
3. Keil:
Keil下的局部优化指令的用法如下
#pragma -Otime
int SmallAndUsedOften()
{/* Do something here. */
}
#pragma –Ospace
int BigAndSeldomUsed()
{/* Do something here. */
}
#pragma –O1 /* Selection between –O1, –O2, –O3 */
int OpExampleUsed()
{/* Do something here. */
}
从上述的三种局部优化指令来看,实际上都是比较类似的,这个局部优化的概念在我看来主要在我们山穷水尽之时能给我们另外一条选择的路,我们首先要有局部优化这个概念,待我们真正用到的时候就会发现其妙用之处的,哈哈.好了,关于局部优化我就介绍到这了,希望对某些博友有所帮助,再聊,未完待续~