博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
循环优化
阅读量:5876 次
发布时间:2019-06-19

本文共 1000 字,大约阅读时间需要 3 分钟。

hot3.png

code A :
#include <stdio.h>
int main()
{
int i;
for(i = 0; i < 200000000; i++)
{
    printf("%d\n",i);
}
return 0;
}
编译 gcc -g main.c
执行 time ./a.out > /dev/null
结果
real 0m6.439s
user 0m6.367s
sys 0m0.050s
code B :
  1 #include <stdio.h>
  2 #include <string.h>
  3 
  4 void string_add(char *num, int len)
  5 {
  6     int p=len-1,f=0;
  7 
  8     num[p]++;
  9 
 10     for(;p>=0;p--)
 11     {
 12         if(f==1)
 13         {
 14             num[p]++;
 15         }
 16 
 17         if(num[p]>'9')
 18         {
 19             num[p]='0';
 20             f=1;
 21         }
 22         else
 23             break;
 24     }
 25 }
 26 
 27 int main()
 28 {
 29 
 30     int i=0;
 31     /*
 32     for(i=0;i<20000000;i++)
 33     {
 34         printf("%d\n",i);
 35     }
 36     */
 37 
 38     char buf[16];
 39     memset(buf,0,sizeof(buf));
 40     sprintf(buf, "%012d", i);
 41     for(i=0;i<20000000;i++)
 42     {
 43         printf("%s\n", buf);
 44         string_add(buf, 12);
 45     }
 46     return 0;
 47 }
编译 gcc -g main.c
执行 time ./a.out > /dev/null
结果
real 0m1.766s
user 0m1.741s
sys 0m0.018s
从结果上看,很明显code B的代码消耗的cpu时间超短
分析:
code A是一直循环(迭代)下去,这样很耗cpu时间,但是code B却不这样,他们是最多每过10个循环(迭代)就会重新执行一次

转载于:https://my.oschina.net/shaxunyeman/blog/115328

你可能感兴趣的文章
golang常见的几种并发模型框架
查看>>
ios开发知识(四十一)
查看>>
CentOS 6.5 安装部署zabbix(Agent客户端篇)
查看>>
(转)服务器time_wait和close_wait处理
查看>>
第4章:介绍python对象类型/4.1 python的核心数据类型/4.5 元组以及文件操作
查看>>
决心书
查看>>
软件安装
查看>>
IP-guard文档加密系统软件典型应用
查看>>
网络工程师成长日记143-自知之明去哪了
查看>>
交换路由实现全网互通
查看>>
思科路由器密码破解
查看>>
Linux学习— /etc/fstab文件详解
查看>>
国家危废目录
查看>>
Redis二进制安装
查看>>
最好用的工兵铲—MaxCompute Studio,来了解下!
查看>>
MySQL数据库的备份与恢复
查看>>
CentOS 7 实现Nginx+Tomcat 负载均衡
查看>>
openstack 调试
查看>>
tcpdump抓包分析,快速完成接口调试
查看>>
语音转文字软件哪个好,这三款值得收藏
查看>>