Ubuntu12.04でのCPU時間の測定について質問があります。
ループの停止基準としてCPU時間を使用したいと思います。最善の方法は何ですか?
while(....)
{
    //main part
    // get CPUTIME
    if(CPUTIME>= Given_Time)
    {
        break;         
    }
}
1)clock()時間の解像度をあまり気にしないのであれば、使用できます。
time_t begin=clock();
....
time_t end=clock();
CPUTIME=(double)(end-begin)/(double)(CLOCKS_PER_SEC);
ただし、time_t実行時間が長くなる可能性があるため(1時間以上)、多くの場合オーバーフローします。この問題を解決するにはどうすればよいですか?
2)2番目のオプションは使用getrusage(int who, struct rusage *usage)
していますループでこの関数を呼び出すのにコストがかかりすぎますか?
3)3番目のオプションは使用することですint clock_gettime(clockid_t clk_id, struct timespect *tp)
これまでのところ、これは私のオプションの最良の選択です。
どんな提案やコメントも役に立ちます。