资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
在我们所写的程序中,几乎没有不用到for循环的,但是,对于for循环,很多人确实效率很低的, 包括我看得很多代码,for循环的执行效率非常低,下面我就举个例子来说明: view plaincopy to clipboardprint?#include char *string=“zhangbo“; int main(int argc,char *argv) int i; for(i=0;i char *string=“zhangbo“; int main(int argc,char *argv) int i,k; k=strlen(zhangbo); for(i=0;i int main(int argc,char *argv) int i,m,k1,k2,k3,k4,k5,k6,k7,k8; m=10000000; for(i=0;i int main(int argc,char *argv) int i,m,k1,k2,k3,k4,k5,k6,k7,k8; m=10000000; for(i=0;i char *hello = “hello“; char *_ = “,“; int main() char *world = “world“; printf(“%s%s%sn“,hello,_,world); return 0; 我们都知道这个程序输hello,world,对了!我们却不知道字符串hello,字符串_,字符串world 是不是在一个位置,如果你觉得,不必关心这些了,反正程序已经达到了效果,那么请你离开这 个网页,不要浪费你的时间。回到计算机上来,我们要让计算机发挥最大的性能,就必须也要像“了解汽车内部结构的工程师 ”一样的了解计算机,我时常赞叹计算机设计的优美。为了加快访问的速度,我们加入了缓存,缓 存的加入,就像我们在超高速行驶汽车时,再优秀的发动机也不能完全燃烧汽油,而且速度越高 ,会由于空气的不足,导致汽油燃烧不尽,从而成了汽车提速的瓶颈,然后,我们在汽车的身上 再多开几个洞(这就是你为什么见到豪华跑车身上都有几个洞),把空气压缩进发动起,从而提 高速度。这和计算机缓存有着异曲同工之妙,好好利用,就相当于,你比别人跑得更快。对于计算机缓存来说,我们都知道他是高速但是昂贵的(难道在跑车开几个洞就不昂贵了吗,是 不是很像?),对于缓存优化,我们紧紧介绍L1缓存的优化(如果你会好好利用,它足以让你的程 序运行时间降低很多)。什么是L1缓存,在计算机CPU中,我们为了提高程序的执行效率和CPU加载相关代码和数据的 速度所加入的一种存储设备,当然,一般CPU会有L2缓存,甚至是L3缓存,很多人的电脑L1缓存的一行只能放入16个字节,就是只能放入4个整数型数据(gcc 4.4版本,32位计算机,酷睿2双核,2.0G赫兹处理速度),可以把计算机L1缓存看成一个二维矩阵 ,写个程序给你看看吧!view plaincopy to clipboardprint?#include int main() int array44; int i,j; for(i=0;i int main() int array44; int i,j; for(i=0;i int main() int i,j; int array1256256; int array2256256; for(i=0;i int main() int i,j; int array1256256; int array2256256; for(i=0;i256;i+) for(j=0;j256;j+) array1ji=array2ji; return 0; 运行时加上系统API函数的时间函数,读者自己实验看看!关于L1缓存的大小,每个CPU不同,这个也是不同的,所以不敢妄加告诉大家。结尾话:贝多芬说,音乐家是离上帝最近的人,其实他漏掉了另一种 程序员,为什么你没成为计算机中“贝多芬”?原因很简单,贝多芬曾因为弹钢琴她的手指缝发 热而不得不用水浸湿后再弹。写程序一个道理。多余话不说。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号