关于linux下 real time 和 user time的问题。急求答案,谢谢各位~~

用C语言写了一个程序,用time命令测得了程序运行时的real,user 跟 sys time, 然后用time 测同时运行两个副本时的速度(用 “time ./程序名 & time ./程序名” 命令测的),real & user time 好像都少了一点点,但是不排除有误差;可是同时运行四个副本的时候,每个副本的real time 变成了原来的两倍,user time 基本没变,这是为什么? 急求答案,谢谢各位~~

user time 是指程序使用的用户态的时间,一般是不变的。
sys time是程序使用的内核态的时间,如果同时运行多个程序,系统会花时间在来回调度和切换进程生。运行多个副本时,会出现sys time增加的现象,至于real time变成两倍了。这个纯属和运行环境有关系。。追问

可是我这个程序下正常运行user time跟real time都是7s多,user time只有0.004s。到了四个副本的时候user time还是7s多,user time也不过变成了0.008-0.012s差不多,但是每一个副本的real time都在14s多,这个差得太多了,没有什么固定的解释么?

追答

你描述的我没太看懂。。怎么都是user time~~~

追问

不好意思,错了。到了四个副本的时候user time还是7s多,sys time变成了0.008-0.012s

追答

sys time变成了0.008-0.012s是正常的啊。因为进程调度和切换需要时间啊。。
至于real time 变成14s, 也是正常的啊。。real time是指从进程开始到进程结束所消耗的时间。。
附上官方解释:
Real is wall clock time - time from start to finish of the call. This is all elapsed time including time slices used by other processes and time the process spends blocked (for example if it is waiting for I/O to complete).

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-08
把程序改成较长的循环, 开两个副本, 开四个副本,结果会怎样?追问

这就是一个很长的循环,要循环1000000000次所以时间比例测得应该比较准。。。

追答

时间你自己把握一下吧。 我几个零少几个零很容易。

追问

我们调的时候规定把时间控制在5-10s,我把程序的时间控制在7s多,如果时间变成了14s肯定不会是误差的缘故

追答

有人说如何优化系统速度? CPU不是瓶颈,内存也不是瓶颈,硬盘IO才是瓶颈。 你猜这根你有关系啊? 天晓得。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网