cat /proc/pid/statに関するドキュメントを読みましたが、多くの数字が表示されます。私が計算しているプロセスが無限ループで実行されています。だから価値観は変わり続けます。私はutimeとstimeというものがあるのを見ましたが、
実行中のプロセスの正確なユーザー時間とカーネル時間を提供するかどうかはわかりません。
utimeとstimeに対応する数値を手動で決定する代わりに、出力からこれら2つの数値を抽出する方法はありますか?
ベストアンサー1
はい、これらのフィールドは実行中のプロセスの正確なユーザー時間とカーネル時間を提供します。man 5 proc
それらを次のように描く
このプロセスがユーザーモードでスケジュールされた時間(クロックサイクル
sysconf(_SC_CLK_TCK)
)。これには、guest_timeフィールドを認識しないアプリケーションが計算でこの時間を失わないようにguest_time(仮想CPUを実行するのにかかる時間、以下を参照)が含まれます。
そして
このプロセスがカーネルモードで予約された時間(クロックサイクル
sysconf(_SC_CLK_TCK)
)。
それぞれ。 (訪問者時間は43番フィールドです。)
フィールドベースのツールを使用して抽出できます。例えば
awk '{print $14, $15}' /proc/$$/stat