LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: Sworder

关于循环的优化

[复制链接]
发表于 2004-8-6 15:43:03 | 显示全部楼层
最初由 luoyong 发表
不是所有编译器都能做到这个的
有些时候只靠编译器是不行的,
将军之所以成为将军,不但要有智谋,也需要他们自己也得相当能打
都承认Windows不稳定,但比尔盖茨在Basic语言的结构方面是个绝对的权威,别看人家是自学的

所以为了当将军自己多做一点没坏处


两个人用差不多一周写个Basic不是特别困难的吧
发表于 2004-8-20 22:39:41 | 显示全部楼层
你这种做法是错误的,你考虑了CPU的资源占用率,那程序运行时间如何?

效率是什么?
是你做的事情/你做这件事情的时间。

如果在每个循环之间加个SLEEP,估计CPU占用率更少,可是意义如何?
必要的优化是需要的,但是CPU都有CACHE的,根据局部原理上来说,做循环更有利于CPU的指令的执行,尤其是在RISC多流水线的构架下。
CPU现在的速度提高不是为了让我们运行程序的时候CPU占用率更低,而是为了运行程序更有效率。

一家之言,仅供参考。
发表于 2004-8-21 22:54:39 | 显示全部楼层
针对楼主这种基本上就是顺序读写一个内存块的情况,除非cpu cache够大,一次把全部数据都load进去,否则局部性原理没什么作用(不过要是都load进去了,这个也不算什么局部了吧,呵呵)。这种情况下减少循环次数,提高cpu一次处理的数据量的做法是正确的。换到台式机上,这段肯定要用sse之类的指令了。不是说cpu占用越低越好,这个主要还是要看背景。如果就是单纯的处理数据,那占用100%也无所谓;如果是首先对音频数据做运算加点特效,然后压缩成mp3,这个时候肯定要合理分配两个部分的资源占用了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表