我正在尝试使用/ usr / bin / time命令对多个执行执行程序性能分析。当我运行它时,与其他执行相比,一些执行需要很长时间。
这是我的计划:
#include <stdio.h>
#define OUTPUTNAME "fprint.out"
main()
{
long i;
FILE *fp;
if ((fp=fopen(OUTPUTNAME,"w")) == NULL) {
fprintf(stderr,"Can't open %s. Bye.\n",OUTPUTNAME);
exit(1);
}
for (i=0; i<400000; i++) { /* write 400,000 Xs with fprintf */
if (fprintf(fp,"X") < 1) {
fprintf(stderr,"Can't write. Bye\n");
exit(1);
}
}
fclose(fp);
exit(0);
}
这是我输出的一部分:
real 0.03
user 0.00
sys 0.03
real 0.33
user 0.00
sys 0.02
real 0.02
user 0.00
sys 0.02
知道为什么会这样吗?我猜这是由与程序无关的东西引起的。
答案 0 :(得分:2)
例如,如果您的流程在系统执行其他更重要的事情时关闭了十分钟,那么挂起时间将超过(您认为)应该是十分钟:
real 10m0.33 user 0.00 sys 0.02
如果您想衡量流程的CPU使用率,只需将sys
和user
加在一起。