最近想研究一下CCS下的程序优化,之前也了解一些,现在查阅一下资料,整理一下。

当然优化有很多种,我本次先说的是执行优化方式。

  1. 首先打开我们自己的工程。工程文件若显示为黄色的,则表示此文件默认优化选项被修改。(默认的是O0)

2.右击文件选择File Specific Options选项,在弹出的对话框中选择Compiler,继续选择Basic,点开Opt Level的下拉菜单,这里我们就可以看到优化 五个选项。(None,O0,O1,O2,O3)。如下图:

3.参阅资料后,把Opt Level下的优化选项说明如下。

None:这个没啥说的吧。

O0:简化控制流图。

分配变量到寄存器。

进行循环换转。

删除未使用的代码。

简化表达式和语句。

内联声明为inline的函数。

O1:

执行O0的优化功能。

施行局部复制/常量传递。

删除未使用的赋值语句。

删除局部共有的表达式。

O2:

执行O1的优化功能。

进行软件流水。

进行循环优化。

删除全局共有子表达式。

删除全局未使用的赋值语句。

把循环中的数组的引用转变为递增的指针形式。

进行循环展开。

O3:

执行O2的优化功能。

删除未使用的所有函数。

当函数的返回值没有用到时,简化函数返回形式。

内联小的函数。

重新对函数声明进行排序。这样优化代码时,被调用函数的属性是已知的。

当所有调用都传递一个相同的参数时,把这个参数直接放到函数体中去,不再通过寄存器的方式传递这个参数。

识别文件级变量的特征。

4.总结

不要问我这句话是什么意思,你理解成什么样子,我就理解成什么样子,(o(∩_∩)o )你至少不是全都不懂吧。最好的方法就是每个选项一次一次试一下,当发现本次优化状态代码运行不对,那么就返回上个优化状态,这样Opt Level下的优化已经到了极限。

CCS3.3下执行优化的更多相关文章

  1. MySQL命令行下执行.sql脚本详解

    本文主要介绍一个在MySQL命令行下执行脚本文件的例子,通过这个例子让我们来了解一下在命令行下MySQL是怎样执行脚本的吧.现在我们开始介绍这一过程. 1.首先编写sql脚本,保存为的:book.sq ...

  2. 在linux命令行下执行php 程序

    如何在linux命令行下,执行php程序. 例子 打印当前时间 php -r "echo time()" 随机输出一个数字 php -r "echo rand(1,20) ...

  3. Linux下执行.sh文件

    Linux下执行.sh文件有两种情况: 一.直接./加上文件名.sh,如运行hello.sh为./hello.sh[hello.sh必须有x权限] 二.直接sh 加上文件名.sh,如运行hello.s ...

  4. Java JDBC下执行SQL的不同方式、参数化预编译防御

    相关学习资料 http://zh.wikipedia.org/wiki/Java数据库连接 http://lavasoft.blog.51cto.com/62575/20588 http://blog ...

  5. dos界面下执行java文件将错误输出到一个文本小技巧

    如果dos下执行java出现错误,把错误记录到一个文档 正确时如图,输出结果为hello,我把String的s改为小写,出现错误,用2>命令输出到error.txt在当前目录就出现了error. ...

  6. 解决方法:loadrunner 场景下执行webservice脚本是---报错10492 Error: Exception was raised when calling per-process-init function in extens

    在vug下执行时,脚本无异常,但是在controller下执行时报下面错误,网上查了下,解决方法千奇百怪,但无一可行. 分析了下错误,似乎是初始化进程有关.想到rts中的设置习惯时以线程方式执行. 遂 ...

  7. hadoop 任务执行优化

    任务执行优化 1. 推测式执行: 如果jobtracker 发现有拖后的任务,会再启动一个相同的备份任务,然后哪个先执行完就会去kill掉另一个,因此会在监控页面上经常能看到正常执行完的作业会有被ki ...

  8. mysql中对数据库的每个表执行优化的存储过程

    说明:此处为<高性能mysql(第二版)>中的示例代码,除了数据库名 其他未经更改.仅供学习及参考 对数据库的每个表执行优化的存储过程 CREATE PROCEDURE `inventor ...

  9. linux 下执行.sh文件总是提示permission denied

      linux 下执行.sh文件总是提示permission denied 如果你是root登陆的话(不是的话,切换到root用户,对*.sh赋可执行的权限) chmod 777 *.sh or ch ...

随机推荐

  1. 数据挖掘之决策树ID3算法(C#实现)

    决策树是一种非常经典的分类器,它的作用原理有点类似于我们玩的猜谜游戏.比如猜一个动物: 问:这个动物是陆生动物吗? 答:是的. 问:这个动物有鳃吗? 答:没有. 这样的两个问题顺序就有些颠倒,因为一般 ...

  2. boost multi_index

    /** boost 多索引容器的一般使用 这里使用google 的gmock 库来验证对boost 多索引模板的使用,并验证. 这里是手敲的,可能会有一些字符敲错的情况,编译错误的放,修改一下,同时链 ...

  3. Android开发之百度地图--环境搭建

    这篇文章总结自极客学院张浩老师的android教学课程,在此对张浩老师和崔爽老师表示非常感谢. (一)基础知识 在申请百度地图开发密钥的时候需要用到数字签名证书的内容,所以这里先对此做一下介绍. (1 ...

  4. [AS3.0] HTMLLoader与js交互

    HtmlLoader 的属性window是加载到 HTML 控件中的内容的全局 JavaScript 对象,通过这个对象能够方便的和页面js通讯. AS代码: import flash.html.HT ...

  5. Blink Without Delay: 不使用 delay() 函数而使 LED 闪烁

    不使用 delay() 函数而使 LED 闪烁 有些时候你需要同时做两件事.例如,你可能希望在读取按键按下状态同时让LED闪烁. 在这种情况下,你不能使用 delay(),因为Arduino程序会在d ...

  6. Windows下python virtualenv使用,镜像源设置,批量安装,安装scipy,numpy

    镜像源设置 在C:\Users\Administrator\下建立pip文件夹,然后在里面创建了一个pip.ini 内容为: [global]index-url = https://pypi.tuna ...

  7. bootstrap下使用模态框,在模态框内输入框中回车时,模态框自动关闭的问题及解决方法

    使用bootstrap下模态框,构建表单提交页面,但是输入框中直接回车,本来是想执行一下验证,但是却导致模态框自动关闭了. 遇到这样的问题,只需要先禁止回车触发表单提交            $(do ...

  8. 说说无耻的商河水木清华开发商2013"交房

    说说无耻的水木清华开发商2013"交房" 我买的是22号楼,合同里写的是2011年6月30号前交房.4月28我手机响了,电话那边说是水木清华的,29号交房.说交房通知书已经EMS发 ...

  9. 异步编程,采用WorkgroupWorker,async和await关键字

    金科玉律:不要在UI线程上执行耗时的操作:不要在除了UI线程之外的其他线程上访问UI控件! NET1.1的BeginInvoke异步调用,需要准备3个方法:功能方法GetWebsiteLength,结 ...

  10. php 判断文件或目录是否存在

    判断文件或目录是否存在有自带的函数 file_exists:文件是否存在 $file = "check.txt"; if(file_exists($file)) {     ech ...