一次简单C程序的性能优化
浏览:6548次 出处信息
下面这段简单的程序, 如何优化?
| 以下是代码片段: #include void main () { int i; for (i=0;i<20000000;i++) { printf("%012d\\n",i); } } |
下午居然想到要来优化这段程序, 并且写出了更好的程序, 性能提升了30%, 从18秒提升到了12秒.
| 以下是代码片段: #include typedef struct _NUMERLIST { int len; char buf[5]; } NUMBERLIST; void printNumber(int num, NUMBERLIST numlist[]) { int v_num,i,j,k,pos=0; char tmpbuf[32]; memset(tmpbuf,0,32); v_num=num; for(i=3;i>=0;i--) { v_num = num; for(k=0;k v_num = v_num % 1000; if (v_num > 999) pos = pos + sprintf(tmpbuf+pos,"%03d", v_num); else { memcpy(tmpbuf+pos, numlist[v_num].buf,3); pos = pos + 3; } } printf("%s\\n", tmpbuf); } void main () { NUMBERLIST numlist[1000]; int i; for (i=0;i<1000;i++) { sprintf(numlist[i].buf, "%03d", i); } for (i=0;i<20000000;i++) { printNumber(i, numlist); } } |
如果优化一下两个程序的IO, 采用缓冲输出, 估计第二段程序更显优势.
建议继续学习:
- WEB系统需要关注的一些点 (阅读:17211)
- 30分钟3300%性能提升――python+memcached网页优化小记 (阅读:13353)
- 基于SSD的数据库性能优化 (阅读:8480)
- jQuery性能优化指南 (阅读:8523)
- mysql sql 百万级数据库优化方案 (阅读:5880)
- PHP最佳实践 (阅读:5748)
- 一次神奇的MySQL优化 (阅读:5773)
- PHP 性能优化技巧-google (阅读:5749)
- Linux 64位, MySQL, Swap & Memory 优化 (阅读:5445)
- Mysql中的排序优化 (阅读:5395)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:关于音乐搜索
后一篇:Paxos在大型系统中常见的应用场景 >>
文章信息
- 作者:anysql 来源: AnySQL.net
- 标签: 优化
- 发布时间:2009-11-06 09:17:49
建议继续学习
近3天十大热文
-
[1179] WordPress插件开发 -- 在插件使用 -
[74] 解决 nginx 反向代理网页首尾出现神秘字 -
[43] web开发设计人员不可不用的在线web工具和 -
[40] Java开发岗位面试题归类汇总 -
[31] 一句话crontab实现防ssh暴力破解 -
[31] 手机产品设计方向 -
[31] Rax 系列教程(长列表) -
[28] 如何建立合适的索引? -
[27] 程序员疫苗:代码注入 -
[26] oracle技术方面的路线
