我正在尝试测量从我的 C++ 代码与系统(在 Linux 中)调用的外部软件的 cpu 时间。我想知道“getusage用户和系统时间”是否可以与“时间命令给出的用户和系统时间”进行比较。
例如,这两段代码返回的时间是否(大约)相同,也就是说,我会做一个公平的比较吗?:
//代码 1 (GETUSAGE)
long int timeUsage1,timeUsage2 = 0;
struct rusage usage;
getrusage(RUSAGE_SELF, &usage);
timeUsage1 = usage.ru_utime.tv_sec+usage.ru_stime.tv_sec;
//C++ code
getrusage(RUSAGE_SELF, &usage);
timeUsage2 = ((usage.ru_utime.tv_sec+usage.ru_stime.tv_sec)-timeUsage1);
//代码 2(我的 C++ 代码中的 TIME LINUX 命令)
system(time external) //where external is equivalent to C++ code above
谢谢,安娜
PS:使用来自 CODE 2 的时间命令,我得到如下信息:
4.89user 2.13system 0:05.11elapsed 137%CPU (0avgtext+0avgdata 23968maxresident)k 0inputs+86784outputs (0major+2386minor)pagefaults 0swaps
我应该担心 137% 的 CPU 吗?