在linux中使用Sleep命令

时间:2012-07-25 15:35:17

标签: c linux performance sleep execution-time

作为我学术项目的一部分,我必须执行C程序。

我想获得程序的执行时间。为此,我必须在Linux中睡眠所有其他进程几秒钟。有没有办法做到这一点?

(我已尝试在Linux中使用time命令但它无法正常工作:它在执行相同程序时显示不同的执行时间。所以我通过查看启动时间之间的差异来计算执行时间和结束时间)。

6 个答案:

答案 0 :(得分:1)

关于我能想到的最佳方式是放入单用户模式,你可以使用

# init 1

几乎任何发行版。这也将阻止X,你将在原始控制台上。处理流浪鼠移动造成的中断可能是您所看到的任何变化的原因之一,因此这是一件好事。

当您希望恢复整个系统时,init 3可能就是那个,init 5

答案 1 :(得分:1)

通常的做法是尽可能地使机器停顿,然后进行多次测量并取平均值。建议丢弃第一个读数,因为这可能涉及大量缓存。

答案 2 :(得分:1)

将进程执行的确切时间转换为调度程序从1个进程转移到另一个进程的系统是不可能的。

英特尔处理器插入了一个计算时钟数的寄存器,但即便如此,也无法测量时间。

有一本书可以在Google上找到PDF,“计算机系统:程序员的视角” - 在本书中,整章都专门用于时间测量。

答案 3 :(得分:0)

使用time命令。 sum user + sys将为您提供程序直接使用CPU的时间加上系统代表您的程序使用CPU的时间。我想这就是你想知道的。

答案 4 :(得分:0)

无论关闭多少进程,轮询,IO,后台守护进程都会影响执行优先级,事情的执行时间总会有所不同。

学术方法是运行一个相当大的样本并进行统计,您可能还需要查看sar来记录背景。要使您可能采取的任何读数无效

答案 5 :(得分:0)

尝试使用nice -n 20执行您的申请。它可能有助于使其他过程更安静。

nice man page