OpenSolaris と Linux の両方で動作する、C でスレッドの CPU 時間をプログラム的に取得する方法

StackOverflow https://stackoverflow.com/questions/2610484

  •  25-09-2019
  •  | 
  •  

質問

C で作成している小さなデーモンがあり、スレッド上の現在の CPU 時間を取得する方法が必要です。Linux では、これを行うためのさまざまな方法 (クロック_gettime(CLOCK_THREAD_CPUTIME_ID, ...)、pthread_getcpu Clockid()、getrusage(RUSAGE_THREAD, ...) を提供しているようですが、これらはいずれも OpenSolaris 2009.06 ではサポートされていないようです。

スレッドの現在の CPU 時間を取得するクロスプラットフォーム対応の方法はありますか?そうでない場合、OpenSolaris でそれを行う方法はありますか?現時点では、これを機能させるために、大量の醜いコンパイラ ディレクティブを追加することさえ厭いません。

役に立ちましたか?

解決

によると 「Solaris プラットフォームにおけるスレッドの優先順位」, 、Solaris 9 以降では、デフォルトでスレッドと LWP が 1 対 1 に対応します (軽量プロセス)。したがって、によると、 getrusage のマンページ, 、電話できるはずです getrusage(RUSAGE_LWP, ...).

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top