【发布时间】:2014-02-25 14:02:30
【问题描述】:
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <time.h>
#define BILLION 1000000000L;
int main( int argc, char** argv )
{
struct timespec start, stop;
double accum;
uint32 StartTime, StopTime;
if( StartTime = clock_gettime( CLOCK_REALTIME, &start) == -1 ) {
perror( "clock gettime" );
return EXIT_FAILURE;
}
StartTime = start.tv_sec + 0.0000000001 * start.tv_nsec;
system( argv[1] ); // or it could be any calculation
if( StopTime = clock_gettime( CLOCK_REALTIME, &stop) == -1 ) {
perror( "clock gettime" );
return EXIT_FAILURE;
}
StopTime = stop.tv_sec + 0.0000000001 * stop.tv_nsec;
accum = StopTime - StartTime;
printf( "%lf\n", accum );
return EXIT_SUCCESS;
}
这个程序计算需要的时间 执行指定为其第一个参数的程序。 时间以秒为单位打印,标准输出。 我正在计算开始时间和停止时间以执行一些计算。我能够获得计算的开始时间和停止时间,但无法找到开始时间和停止时间之间的差异,即累积。有人可以帮我吗?
【问题讨论】:
-
声明
StartTime和StopTime为double如果你不想分配这种表达式start.tv_sec + 0.0000000001 * start.tv_nsec; -
如果是uint32怎么修改??