作者chrisjon (与程式最後的决战)
看板PLT
标题Re: [问题] 同环境不同时空所需时间....
时间Mon Sep 28 17:02:14 2009
※ 引述《chrisjon (与程式最後的决战)》之铭言:
: 请问,有可能在 相同电脑、相同程式、相同软体
: 在不同时间跑出来的结果不同吗? ~.~??
: 我使用Maple统计软体,在数个月(约半年)前跑出一些结果
: 此结果是记录 一个计算公式执行10的9次方次
: 最近因为使用C,找出一些不同的程式码
: 因为时间结果太奇怪,所以把之前的程式(一模一样的)再重新跑一次
: 结果时间缩短了将近1/3~1/4....
: 例如:原本跑20937秒,重跑後剩5510秒
: 原本跑12468秒,重跑後剩4983秒
: ....怎麽会这样~.~
┌─────┐
│ 引入参数 │
└──┬──┘
↓
┌─────┐
│ 记录时间I│
└──┬──┘
↓
┌─────┐
┌─┤while i<k │←┐(k = 1,000,000,000)
│ └──┬──┘ │
│ ↓ │
│ ┌─────┐ │
│ │ 计算公式 ├─┘
│ └─────┘
└────┐
↓
┌─────┐
│记录时间II│
└──┬──┘
↓
┌─────┐
│耗时=I-II │
└──┬──┘
↓
┌─────┐
│ 结 束 │
└─────┘
流程只是如此,为什麽时间会变呢?
在我的想法,因为在一样的条件下,所以得到的结果应该会差不多
(会有误差,但应该不会差太多)
请问能否请前辈简单说明一下? 感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.195.137.179
1F:推 PsMonkey:multi-programming OS 阿.... [摊手] 09/28 21:35
11何谓Multi-Programming系统。
在批次系统中,虽然程式可以一个接一个地执行, 但只要某份工作正在等待 I/O 设备
(例如读取或储存资料), CPU 就会为了要等待其执行完成, 而处於闲置状态。
为了改善此一情况, 於是发展出多元程式 (Multi-programming) 系统。
我在知识+看到的解释,可是还是不是很懂
为什麽同样的电脑会出现Multi-programming OS
因为自动更新的关系吗?
※ 编辑: chrisjon 来自: 123.195.137.179 (09/28 22:04)
2F:→ menspower:你在执行你的程式时...滑鼠却还可以动来动去? 09/28 22:53
3F:→ menspower:要达到这种效果...不就是Multi-programming? 09/28 22:55
4F:→ menspower:不过我举的例可能没有很好...我省略了某些运作细节:P 09/28 22:57
嗯嗯!!多工就是了
但是问题是,第一次跑时,电脑重开机後就执行程式,之中几乎没有做过其他事
(偶尔会动动滑鼠)
可是最近这次跑程式,我几乎是跑程式兼看网页、打BBS全都来...反而还比较快?
5F:推 menspower:想请问原po所使用的记录时间所呼叫的function为何? 09/28 23:02
6F:→ menspower:而且这个问题跟Multi-threading及Multi-core有关... 09/28 23:04
7F:→ menspower:不过要先查清楚Maple跟C所使用的纪录时间function为何.. 09/28 23:06
Maple只要执行 time(); 就会出现执行程式所"累计"的时间
例如A程式执行30秒,time(); → 30
再执行B程式25秒, time(); → 55
所以要计算B程式所耗费的时间,就是先把30记录下来,再把55记录下来,最後相减
※ 编辑: chrisjon 来自: 123.195.137.179 (09/29 03:28)