首页 新闻 会员 周边 捐助

一个循环效率问题(请指教)

0
[已关闭问题] 关闭于 2009-12-31 14:18

for(……)

{

  处理1;

  处理2;

}

原来代码如上,一个for循环里面有要做两件事情。后续想把两件事情(处理1和处理2)抽象为方法,甚至为类,就用了两个循环遍历,改为如下:

for(……)

{

  处理1;

}

for(……)

{

  处理2;

}Stopwatch测试了一下两个运行时间一样,不知道理论上是否效率一样?

sharpfeng的主页 sharpfeng | 初学一级 | 园豆:200
提问于:2009-12-22 16:24
< >
分享
所有回答(4)
0

你说呢?这个为啥不自己判断一下?

Jeffrey Zhao | 园豆:1629 (小虾三级) | 2009-12-22 16:41
谢谢。我自己用Stopwatch判断过,时间一样。原本我担心这样做要循环两次怕时间翻倍。
支持(0) 反对(0) sharpfeng | 园豆:200 (初学一级) | 2009-12-25 09:30
0

当然不一样,第一个循环count次,第二个循环count*2次。至于运行时间一样,可能是内部的代码执行效率不一样。

阿松 | 园豆:601 (小虾三级) | 2009-12-22 16:53
0

记得在一些C++的书看到:

循环内方法比较简单,放在一起比较有效率;但方法复杂循环大,分开效率比较高。理由与cpu的代码cache机制有关

苍苔 | 园豆:205 (菜鸟二级) | 2009-12-23 14:01
有些道理,可惜我对代码Cache机制不了解,呵呵
支持(0) 反对(0) sharpfeng | 园豆:200 (初学一级) | 2009-12-25 09:33
0

如果你的内存不是很小而且这两个操作又不会占用太大的资源的话,就不用考虑这样的问题。

天堂口 | 园豆:514 (小虾三级) | 2009-12-23 20:39
我并不是担心程序负荷的问题,只是想明白这两种方式哪种更合适,有时候循环内部可能涉及复杂的操作,如果效率上问题不大,我想把循环内部的操作封装下会更好些。
支持(0) 反对(0) sharpfeng | 园豆:200 (初学一级) | 2009-12-25 09:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册