找回密码
 点一下
查看: 1722|回复: 41

一個神奇的問題...

[复制链接]
发表于 2008-12-23 13:59:29 | 显示全部楼层 |阅读模式
好罷。其實這就是某計劃的某部分代碼。
[codes=java]for(i=0;i<10000;++i){
initialize(i);
res1=checksum(buffer1,len1);
res2=checksum(buffer2,len2);
if(res1==res2) //注意這兩行。---A
rescount=0; // ---B
}[/codes]
(因為C系列無法正確顯示所以用了java着色)
没有注释的那两行,10000个数据的计算时间是3.5s
加上那兩行后時間暴增至17s
而去掉A寫上B也是3.5s
有人知道是為什麽么...

這個問題決定了某計劃的計算時間是17天還是85天...
发表于 2008-12-23 14:49:32 | 显示全部楼层
也就是说其中对比数据消耗了很多的时间撒
回复

使用道具 举报

 楼主| 发表于 2008-12-23 15:01:00 | 显示全部楼层
如果把A改成"if(res1==res2);"然後去掉B還是3.5s,所以LS結論推翻。
兩個int比較轉成指令也就一條comp和一條jnz,能占用多少時間...
回复

使用道具 举报

发表于 2008-12-23 15:03:21 | 显示全部楼层
  [s:166]

这样就相当于说并不是比较数据花的时间

而是通过比较的结果构造两种不同的路径去执行

这个过程消耗的时间?
回复

使用道具 举报

 楼主| 发表于 2008-12-23 15:11:07 | 显示全部楼层
所以說這個問題很神奇。
順便說下,3.5s中,initialize占用1s,兩條chechsum分別占用1.25s
回复

使用道具 举报

发表于 2008-12-23 15:16:06 | 显示全部楼层
是不是因为if条件判断的正确率实在太低,所以导致跳转效率降低呢??
回复

使用道具 举报

 楼主| 发表于 2008-12-23 15:21:24 | 显示全部楼层
跳轉就一條指令...怎么可能效率低...
checksum基本上素處理10W級別的數據的,不可能比判斷+跳轉+賦值的組合耗時更少罷...
回复

使用道具 举报

发表于 2008-12-23 15:26:46 | 显示全部楼层
额………………
貌似记得作判断的话是先按照预测判断正确执行下去,如果发现判断错了就要bubble,浪费掉一些周期额
回复

使用道具 举报

发表于 2008-12-23 15:31:37 | 显示全部楼层
如此说来可以使用别的优化写法咩?
回复

使用道具 举报

w
发表于 2008-12-23 18:08:33 | 显示全部楼层

analysis.zip

10 KB, 下载次数: 7

回复

使用道具 举报

kw 该用户已被删除
发表于 2008-12-23 18:12:53 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2008-12-23 18:15:15 | 显示全部楼层
诧异10楼那是啥?
回复

使用道具 举报

发表于 2008-12-23 18:22:38 | 显示全部楼层
好罢。看来似乎的确是编译器优化的问题了。
回复

使用道具 举报

发表于 2008-12-23 18:53:03 | 显示全部楼层
于是还是预期的17天吧
回复

使用道具 举报

 楼主| 发表于 2008-12-23 18:54:03 | 显示全部楼层
no,变成了85天。
回复

使用道具 举报

w
发表于 2008-12-23 18:54:35 | 显示全部楼层
the world full of fool
回复

使用道具 举报

恶声恶气 该用户已被删除
发表于 2008-12-23 18:56:59 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

 楼主| 发表于 2008-12-23 18:57:48 | 显示全部楼层
于是继续开始的计划,分256份。
回复

使用道具 举报

发表于 2008-12-23 18:58:36 | 显示全部楼层
引用第18楼白银の游戏王于2008-12-23 18:57发表的  :
于是继续开始的计划,分256份。


双核CPU能否减少时间?
回复

使用道具 举报

发表于 2008-12-23 19:54:39 | 显示全部楼层
引用第13楼白银の式神于2008-12-23 18:22发表的  :
好罢。看来似乎的确是编译器优化的问题了。


我还以为你会换个编译器试试看的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-9-30 15:20 , Processed in 0.089688 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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