我使用以下命令运行了一个C程序(table.c):
time table
给我运行时间,我得到了:
0.104u 1.179s 0:01.31 96.9% 0+0k 0+48io 0pf+0w
我有几个问题:
Q1:这一切意味着什么?
Q2:为什么每次执行程序时这些数字都会改变?
答案 0 :(得分:1)
Q1:这一切意味着什么?
第一个值(u
)是您的程序在用户上下文中花费的时间。这意味着您的代码花了多长时间才能运行。
第二个值(s
)是您的程序在 system 上下文中花费的时间。这意味着,在程序执行期间,它在内核中花费了多长时间,处理程序所进行的系统调用。
第三个值是程序运行的总时间,包括用户,系统和睡眠,但未显示
我相信如果你做数学运算,你会看到你的程序正在运行(而不是睡觉),从开始到96.9%的时间,直到它结束了。
Q2:为什么每次执行程序时这些数字都会改变?
因为您运行的是真正的桌面系统,具有抢占式操作系统,还运行其他程序,并处理外部事件,如硬盘活动和网络流量。您不可能期望程序每次都与完全相同的时间运行。 1
1 - 对于经常在嵌入式系统中使用的专门设计的“实时操作系统”,情况并非如此。汽车。