プロセスごとの計算時間を測定するための次の簡単な関数があります。
double get_cpu_time()
{
//LINUX
const static int64_t NANOS_PER_SEC = 1000000000L;
struct timespec time;
clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &time);
return (((int64_t) time.tv_sec) * NANOS_PER_SEC) + ((int64_t) time.tv_nsec);
}
ini_time = get_cepu_time();
//intesive computation code
end_time = get_cepu_time();
end_time = end_time - ini_time
;
この関数は、各プロセスの計算時間を返します。簡単な方程式では、次のようになります。
Tcomp = Tcpu + Taccmen => inst * ILP + #misscache*レイテンシー時間
Tcpu時間(データを探す時間を考慮せずに命令を実行する時間)だけを取得することに興味がありますが、この時間を取得するための関数、またはメモリアクセス時間を返す関数を知っていますか? --Taccmem)
よろしくお願いします、
ジェン