布恩网站删除,产品类型 速成网站,代替wordpress,网站模板 金融代码优化的目的是改善程序的执行性能。gcc提供的代码优化功能非常强大#xff0c;它通过参数-On来控制优化代码的生成#xff0c;其中n为优化级别的整数#xff0c;比较典型的范围是从0变化到2或3#xff08;与版本有关#xff09;。
编译时通过使用选项-O可以告诉gcc同时…代码优化的目的是改善程序的执行性能。gcc提供的代码优化功能非常强大它通过参数-On来控制优化代码的生成其中n为优化级别的整数比较典型的范围是从0变化到2或3与版本有关。
编译时通过使用选项-O可以告诉gcc同时减小代码的长度和执行时间其效果等价于-O1在这一级别上能够进行的优化类型虽然取决于目标处理器但一般都会包括线程跳转和延迟退栈两种优化。选项-O2除了完成所有-O1级别的优化外同时还要进行一些额外的调整工作如处理器指令调度等。选项O3除了完成所有-O2级别的优化外还包括循环展开和其他一些与处理器特性相关的优化工作。数字越大优化的等级越高程序的运行速度更快。一般采用-O2选项因为它在优化长度、编译时间和代码大小之间取得了一个比较理想的平衡点。
借助Linux的time命令可以大致统计出该程序在运行时所需要的时间注意此时最好退出其它程序。
[rootlocalhost work]# gcc -Wall hello.c -o hello
[rootlocalhost work]# time ./hello
hello world!
real 0m0.011s
user 0m0.000s
sys 0m0.002s
//优化如下
[rootlocalhost work]# gcc -Wall -O hello.c -o hello
[rootlocalhost work]# time ./hello [rootlocalhost work]# gcc -Wall -O1 hello.c -o hello
[rootlocalhost work]# time ./hello [rootlocalhost work]# gcc -Wall -O2 hello.c -o hello
[rootlocalhost work]# time ./hello [rootlocalhost work]# gcc -Wall -O3 hello.c -o hello
[rootlocalhost work]# time ./hello
real进程总的执行时间它和系统负载有关包括了进程调度切换的时间
user被测量的进程中用户指令的执行时间CPU的运行计算等
sys被测量的进程中内核代用户指令执行的时间user和sys的和被称为CPU时间系统调用消耗的时间。
注意尽管gcc的代码优化功能很强大但还是要求能够手工编写出高质量的代码很重要如果自己编写的代码简洁逻辑性强则编译器就不会做更多的工作甚至不需要进行优化。而且在一些场合中不允许对代码进行优化程序开发的时候优化等级越高消耗在编译的时间上也就越长因此开发的时候不建议对代码进行优化只有软件开发结束的时候才考虑对最终代码进行优化。跟踪调试的时候也不建议对代码进行优化因为优化可能会使某些代码被删除或改写或者重组从而使跟踪和调试变得异常困难。