Linux time命令输出中的real,user和sys的含义

$ time ./Test

real    0m2.906s

user 0m2.887s

sys 0m0.017s

这是程序代码:

#include <iostream>

#include <map>

void func_a() {

std::map<int, int> m;

for (unsigned int i = 0; i < 10000; i++) {

m.insert(std::pair<int, int>(i, i));

}

}

void func_b() {

std::map<int, int> m;

for (unsigned int i = 0; i < 1000000; i++) {

m.insert(std::pair<int, int>(i, i));

}

}

int main() {

func_a();

func_b();

return 0;

}

回答:

如果您查看联机帮助页(man

time),它会指出:

time命令使用给定参数运行指定的程序命令。命令完成后,时间将消息写入标准输出,以提供有关此程序运行的计时统计信息。这些统计信息包括(i)调用和终止之间经过的实时时间;(ii)用户CPU时间(由times(2)返回的结构tms中tms_utime和tms_cutime值的总和),以及(iii)系统CPU时间(由times(2)返回的结构tms中tms_stime和tms_cstime值的总和)。

但是,基本上,user时间是程序在CPU上运行的sys时间,而时间是程序等待操作系统为其执行任务的时间。如果您对基准测试感兴趣,那user +

sys就是使用的好时机。 real可能会受到其他正在运行的进程的影响,并且更加不一致。

以上是 Linux time命令输出中的real,user和sys的含义 的全部内容, 来源链接: utcz.com/qa/420032.html

回到顶部