在 Unix 中解释程序的文字 运行 时间

Interpreting Literal Run Time of a Program in Unix

我运行一个C程序(table.c)使用命令:

time table

给我 运行 时间,我得到了:

0.104u   1.179s   0:01.31   96.9%      0+0k 0+48io 0pf+0w

我有几个问题:

Q1:这一切是什么意思?

问题 2:为什么每次执行我的程序时这些数字都在变化?

Q1: What does all this mean?

第一个值 (u) 是您的程序在 user 上下文中花费的时间。也就是说,你的代码花了多长时间 运行ning.

第二个值 (s) 是您的程序在 系统 上下文中花费的时间。意思是,在您的程序执行期间,它在内核中花费了多长时间来处理您的程序发出的系统调用。

第三个值是您的程序 运行 的总时间,包括 usersystem睡觉 未显示。

我相信如果你算一下,你会发现你的程序是 运行ning(而不是 sleeping ) 96.9% 的时间从开始到结束。

Q2: Why are these numbers changing every time I execute my program?

因为你运行正在使用一个真正的桌面系统,使用抢占式操作系统,所以也运行正在其他程序,并处理硬盘等外部事件activity和网络流量。您不可能期望程序每次都以 完全 相同的时间 运行。 1

1 - 对于经常用于嵌入式系统的专门设计的 "Real-Time OS",情况并非如此,例如汽车。