for循环延时问题

nwpu_2002 2008-04-02 02:36:42
假设一个指令周期的时间为t,请问下面的语句需要多长时间:
for(int i = 0;i < 1000;i++)
{
for(int j = 0;j < 100;j++)
{
}
}
...全文
730 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
buf1024 2008-04-02
  • 打赏
  • 举报
回复
加法指令所要的时间,读写内存所指令所要的时间
计算,
与主频有关
wuyuncxl 2008-04-02
  • 打赏
  • 举报
回复
与CPU的频率有关系
abupie 2008-04-02
  • 打赏
  • 举报
回复
不太明白楼主的目的。。。
时间不是一个确定的值,有太多其他的相关条件,比如楼上各位说的:编译器问题,硬件条件,等等。
hazuki9902 2008-04-02
  • 打赏
  • 举报
回复
for循环实现延时是有很大局限性的
首先不准,能不能抢到CPU?能抢到多少?谁也说不好
再次,效率低,CPU空转,浪费系统资源
最后,大家提到的编译器问题,是可行性方面的问题,也是风险最大的问题

个人感觉应该用系统中断解决延时问题

关注其他的解决办法
chenhj_wo 2008-04-02
  • 打赏
  • 举报
回复
用sleep吧!
hhr1310 2008-04-02
  • 打赏
  • 举报
回复
跟cpu的频率有很大关系
sheenl 2008-04-02
  • 打赏
  • 举报
回复
指令周期 ? 不同的指令, 消耗的时钟周期又不一样.
想看对应的指令数量, 生成汇编自己数数不就好了.
alwaysLonely 2008-04-02
  • 打赏
  • 举报
回复
我倒```都讨论起这个问题来了...

LZ问的这个问题就是计算下这个循环到底消耗了多少个指令周期嘛....

指令周期 : CPU从内存取出一条指令并执行这条指令的时间总和...

除了这个概念,剩下的就是算术了...自己算吧...
sheenl 2008-04-02
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zmlovelx 的回复:]
如果某人寄望于这样的循环而达到延时呢
且不论可行性
那编译器是不是管的也太多了
[/Quote]

嘿嘿, 这东西, 说来说去也没用, 自己试一下就知道了. 我确定在vc6.0上, 这样的空循环肯定会被优化掉(release版), 其他的编译器, 我可没精力一个一个的试验, 反正肯定不是放之四海皆准的标准.
nwpu_2002 2008-04-02
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zmlovelx 的回复:]
如果某人寄望于这样的循环而达到延时呢
且不论可行性
那编译器是不是管的也太多了
[/Quote]
纯粹的探讨一下需要多长时间
jiangsu288 2008-04-02
  • 打赏
  • 举报
回复
認為不會优化掉
帅得不敢出门 2008-04-02
  • 打赏
  • 举报
回复
如果某人寄望于这样的循环而达到延时呢
且不论可行性
那编译器是不是管的也太多了
mjf_2008 2008-04-02
  • 打赏
  • 举报
回复
关注
qiucp 2008-04-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sheenl 的回复:]
0,

空循环, 应该会被一些编译器优化掉
[/Quote]

有什么根据吗?
sheenl 2008-04-02
  • 打赏
  • 举报
回复
不相信空循环会被像VC这样的编译器优化掉? 你可以自己试试.
qmm161 2008-04-02
  • 打赏
  • 举报
回复
1 楼,可以把汇编打印出来 see see
liluyemin 2008-04-02
  • 打赏
  • 举报
回复
100×1000×3t 觉得。。
jshang 2008-04-02
  • 打赏
  • 举报
回复
看机器配置了。
sheenl 2008-04-02
  • 打赏
  • 举报
回复
0,

空循环, 应该会被一些编译器优化掉

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧