我如何跟踪我的程序执行某条指令的时间,例如,如果要测量磁盘使用量,那将需要时间,最后我的程序应该给出一个 oupit
真实=50.0s 用户=30.s 系统=20.0s
如何区分和收集系统时间和实际命令时间?
我如何跟踪我的程序执行某条指令的时间,例如,如果要测量磁盘使用量,那将需要时间,最后我的程序应该给出一个 oupit
真实=50.0s 用户=30.s 系统=20.0s
如何区分和收集系统时间和实际命令时间?
过去我曾经使用 pureCoverage 来检查执行时间,但它很昂贵。可能有免费工具可以做同样的事情,但是为了快速而肮脏的解决方案......
include <time.h>
#include <stdlib.h>
#include <stdio.h>
int main(void) {
time_t start_time, end_time;
start_time = time(NULL);
//Do your thing...
end_time = time(NULL);
int diff = end_time - start_time;
//Diff will be the number of milliseconds that elapsed.
}
getrusage
在 Linux 中使用:
#include <sys/time.h>
#include <sys/resource.h>
...
struct rusage rusage;
getrusage(RUSAGE_SELF, &rusage);
/* use rusage.ru_utime and rusage.ru_stime for user and system time resp. */
还有另一种解决方案,与前面的示例没有太大区别。
#include<time.h>
int main ()
{
clock_t start_time, stop_time;
start_time = clock();
// ... do your thing;
stop_time = clock();
printf("Elapsed time: %lf", (double)( stop_time - start_time ) / CLOCKS_PER_SEC);
}