0

シェル スクリプトの実行にかかる時間を c で表す基本的なものを書いています。

私は持っている

gettimeofday(&start, NULL);
// code here

gettimeofday(&end, NULL);
// print end - start

timeval 構造体には私が説明した tv_sec と tv_usec があることを知っていますが、「sleep 3」などのスクリプトでも、この終了と開始の差はまだ 0 です。理由について何か推測はありますか?

4

2 に答える 2

1

あなたはこれを読むべきです: gettimeofday() は時間を測定するために決して使用されるべきではありません

clock_gettime(CLOCK_MONOTONIC, ...)代わりに試してください。

于 2013-02-06T06:41:01.573 に答える
0

たとえば、これを試してください:

double dtime(){
    double t;
    struct timeval tv;
    gettimeofday(&tv, NULL);
    t = tv.tv_sec + ((double)tv.tv_usec)/1e6;
    return t;
}

…
double t0 = dtime();
…
printf("Time spend: %g seconds\n", dtime()-t0);
于 2013-02-06T06:38:59.187 に答える