1
我试图对多次执行使用/ 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
任何想法,为什么发生这种情况?我猜这是由与节目无关的事情引起的。
谢谢!我在远程PC上运行它,所以我想这是因为有一些系统进程在那里运行。 – npn
+ @npn:是的,你应该预料会有很多变化,但是不要在“CPU时间”中放太多库存,因为这个程序是IO限制的。除非将它打印到空设备上,否则fprintf(fp)将占总时间的90%到100%。 –