作者judo1127 (阿纬)
看板Programming
标题[问题] 程式执行时间
时间Fri Sep 3 05:03:25 2010
最近写一支演算法~要来计算他的执行时间
可是发现例如跑10次会有4~5次 执行时间是在一个常数的数值
然後大约3~4次会时间大约偏高 1.2次偏低 (而且执行时间都会一样)
"举例"数据会长这样 1 1 1 2 1 1 3 1 2 3 单位:毫秒
计算执行时间是抓CPU的clock来计算!!
使用VS C++ 有这个涵式可以用
问题来了~我想问说有时偏高的数据中最高跟最低会差到50毫秒左右
在执行的时候也都关掉不必要的应用程式
是否OS本身一些作业的关系 它的优先权比使用者的应用程式高
所以导致先中断去执行 再回来去做我的运算??
PS每次跑10次都有发现这样的问题
不是连续跑10次而是分开来执行 执行完一次在执行下一次(这里因为避免存到cache)
演算法只是做一些运算 没有写到IO的部分@@
不知道有没有人遇过这样的问题>"<
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.251.196.4
1F:→ ericinttu:时间精准度的必要性? real-time system? 59.117.114.83 09/03 05:21
2F:→ ericinttu:50ms 的误差, 严重与否, 要看你应用的领 59.117.114.83 09/03 05:23
3F:→ ericinttu:域, 这没讲出来, 只能凭个人感觉来判断 59.117.114.83 09/03 05:23
4F:→ ericinttu:时间误差的严重性了 59.117.114.83 09/03 05:24
5F:→ ericinttu:另外,计算时间的方式也是有优劣好坏之别 59.117.114.83 09/03 05:54
6F:推 costbook:通常都是算Big-O吧 120.124.134.62 09/03 09:31
7F:推 yauhh:对啊,会被时脉和程序切换影响.所以很难做. 211.21.94.199 09/03 09:42
8F:→ yauhh:你可以用windows内建的perf程式检视每次执行 211.21.94.199 09/03 09:43
9F:→ yauhh:资讯.至於程式评估就看怎麽把数据统计处理了 211.21.94.199 09/03 09:44
10F:→ ericinttu:学术偏理论都会附上Big-O, 学术偏应用会 59.117.114.83 09/03 10:06
11F:→ ericinttu:说明使用系统、环境与执行时间 59.117.114.83 09/03 10:06
12F:→ ericinttu:业界不清楚, 但应该类似後者 59.117.114.83 09/03 10:07
13F:→ MOONRAKER:看不懂那个 1 1 1 2 1 1 3 是怎样… 59.120.168.228 09/03 17:12
14F:→ MOONRAKER:整个演算法执行只要1ms?那误差也太大 59.120.168.228 09/03 17:13
15F:→ MOONRAKER:这样计算有什麽意义… 59.120.168.228 09/03 17:13
16F:推 ericinttu:给楼上, 误差的原因: 1. 原程式本身 59.117.114.83 09/03 19:51
17F:→ ericinttu:2. 计时的写法 3. 时间的计量单位 59.117.114.83 09/03 19:52
18F:→ utomaya:有一个方法 可以测精准时间 58.115.143.178 09/03 21:58
19F:→ utomaya:写一个回圈 让他跑n次 总时间再除以n 58.115.143.178 09/03 21:59
20F:→ ericinttu:楼上的也是一个方法, 运用统计概念去求 59.117.124.120 09/04 00:57
21F:→ yauhh:不是,Big-O只是与统计数字相同的一个总和数,218.160.210.166 09/04 08:01
22F:→ yauhh:而Big-O不是实际计算而回归来的.218.160.210.166 09/04 08:02
23F:→ yauhh:实测时就是跑不同次数的多次,n1,n2,...nk,218.160.210.166 09/04 08:03
24F:→ yauhh:在二维图上打点,然後看要求平均会是回归..218.160.210.166 09/04 08:04
25F:→ MOONRAKER:给e先生:你讲的跟他 1 1 1 2 1 1 3 有 59.120.168.228 09/04 16:45
26F:→ MOONRAKER:什麽关系?我看不懂他写啥 别扯别的 59.120.168.228 09/04 16:45
27F:推 costbook:另一个办法就是呼叫解析度更高的时间函数 120.124.134.62 09/05 13:02
28F:→ costbook:你要计算ms,就用计算us的函数去计算 120.124.134.62 09/05 13:02
29F:→ costbook:(解析度?用解析度好像不太对...) 120.124.134.62 09/05 13:03
30F:→ costbook:我之前有爬过类似的文,连结忘记放哪了 120.124.134.62 09/05 13:04
31F:→ sunneo:我想costbook想说的是精准度 140.127.114.41 09/05 21:42
32F:推 meto000:执行时间会有1~3倍的差异喔?还是测量问题?210.241.123.132 09/08 10:01