gcc在编译的时候可以使用-O、-O2和-O3选项(字母O要大写)来对代码进行优化,以下是一个故意创建的代码欧用于配合time命令测试该优化选项的效果,time命令的输出为real、user和sys三项,各个部分说明如下:
real:进程总的执行时间, 它和系统负载有关(包括了进程调度,切换的时间),
user:被测量的进程中用户指令的执行时间;
sys:被测量进程中内核代用户指令执行的时间,user和sys的和被称为CPU时间。
user:被测量的进程中用户指令的执行时间;
sys:被测量进程中内核代用户指令执行的时间,user和sys的和被称为CPU时间。
#include <stdio.h>
int main(void)
{
unsigned long int counter; /*定义相关的变量*/
unsigned long int result;
int i;
int main(void)
{
unsigned long int counter; /*定义相关的变量*/
unsigned long int result;
int i;
unsigned long int temp;
unsigned int five;
/*判断条件在每一次for循环时都会进行一次计算*/
for (counter=0; counter < 2009 * 2009 * 100 / 4 + 2010; counter += (10 - 6) / 4)
{
unsigned int five;
/*判断条件在每一次for循环时都会进行一次计算*/
for (counter=0; counter < 2009 * 2009 * 100 / 4 + 2010; counter += (10 - 6) / 4)
{

本文通过一个示例程序,展示了在GCC编译时使用-O、-O2和-O3选项对代码优化的影响。通过time命令观察,可以看到不同优化级别下,程序的real(总执行时间)、user(用户指令执行时间)和sys(内核代用户指令执行时间)的显著变化,特别是在-Raspberry Pi上运行的结果。
最低0.47元/天 解锁文章
8097

被折叠的 条评论
为什么被折叠?



