8.14.2 リソースの使用状態

以下の関数はリソース使用情報を取得するために使われます:

getrusage( who)
この関数は、who 引数で指定される、現プロセスおよびその子プロセスに よって消費されているリソースを記述するオブジェクトを返します。 who 引数は以下に記述される RUSAGE_* 定数のいずれかを 使って指定します。

返される値の各フィールドはそれぞれ、個々のシステムリソースがどれくらい 使用されているか、例えばユーザモードでの実行に費やされた時間やプロセス が主記憶からスワップアウトされた回数、を示しています。幾つかの値、 例えばプロセスが使用しているメモリ量は、内部時計の最小単位に依存します。

以前のバージョンとの互換性のため、返される値は 16 要素からなるタプル としてアクセスすることもできます。

戻り値のフィールド ru_utime および ru_stime は 浮動小数点数で、それぞれユーザモードでの実行に費やされた時間、および システムモードでの実行に費やされた時間を表します。それ以外の値は 整数です。これらの値に関する詳しい情報は getrusage(2) を調べてください。以下に簡単な概要を示します:

インデクス フィールド名 リソース
0 ru_utime ユーザモード実行時間 (float)
1 ru_stime システムモード実行時間 (float)
2 ru_maxrss 最大常駐ページサイズ
3 ru_ixrss 共有メモリサイズ
4 ru_idrss 非共有メモリサイズ
5 ru_isrss 非共有スタックサイズ
6 ru_minflt I/O を必要とするページフォールト数
7 ru_majflt I/O を必要としないページフォールト数
8 ru_nswap スワップアウト回数
9 ru_inblock ブロック入力操作数
10 ru_oublock ブロック出力操作数
11 ru_msgsnd 送信メッセージ数
12 ru_msgrcv 受信メッセージ数
13 ru_nsignals 受信シグナル数
14 ru_nvcsw 自発的な実行コンテキスト切り替え数
15 ru_nivcsw 非自発的な実行コンテキスト切り替え数

この関数は無効な who 引数を指定した場合には ValueError を送出します。また、異常が発生 した場合には error 例外が送出される可能性があります。

バージョン 2.3 で 変更 された仕様: 各値を返されたオブジェクトの属性としてアクセス できるようにしました

getpagesize( )
システムページ内のバイト数を返します。(ハードウェアページサイズと 同じとは限りません。) この関数はプロセスが使用しているメモリの バイト数を決定する上で有効です。getrusage() が 返すタプルの 3 つ目の要素はページ数で数えたメモリ使用量です; ページサイズを掛けるとバイト数になります。

以下の RUSAGE_* シンボルはどのプロセスの情報を提供させるか を指定するために関数 getrusage() に渡されます。

RUSAGE_SELF
RUSAGE_SELF はプロセス自体に属する情報を要求するために 使われます。

RUSAGE_CHILDREN
getrusage() に渡すと呼び出し側プロセスの子プロセスのリソース 情報を要求します。

RUSAGE_BOTH
getrusage() に渡すと現在のプロセスおよび子プロセスの両方が 消費しているリソースを要求します。全てのシステムで利用可能なわけでは ありません。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。