マルチスレッド C アプリケーション (デーモン) があります。アプリケーションへのスレッドごとに CPU 使用率を測定できますか?
2626 次
2 に答える
7
これは古い質問ですが、私自身の Google 検索で最も関連性の高いヒットとして出てきました。そこで、私が導き出した答えを出します。
pthreads またはそれを使用するライブラリ (Boost ライブラリなど) を使用していると仮定します。
pthread_getcpuclockid
とを使用できますclock_gettime
。
man ページは、 pthread_getcpuclockid、clock_gettimeにリンクしています。
現在の時刻をdoubleとして返す簡単な例を次に示します。
double cpuNow( void ) {
struct timespec ts;
clockid_t cid;
pthread_getcpuclockid(pthread_self(), &cid);
clock_gettime(cid, &ts);
return ts.tv_sec + (((double)ts.tv_nsec)*0.000000001);
}
于 2014-06-04T20:49:36.113 に答える
1
からデータを解析できます /proc/<PID>/stat
。CPU ラインは次のようになります。
cpu 143359 8217 480152 132054567 45162 5678 24656 0 0
于 2013-09-05T14:11:45.760 に答える