8.12.2 資源の使用状況

以下の関数は、資源の使用状況を取得するために使用されます。

getrusage (who)
この関数は、パラメータ who で指定されたプロセス、またはその子プロセス により消費された資源の情報を持つタプルを返します。パラメータ who には、以下に示す定数 RUSAGE_* の中の1つを指定しなければなりません。

戻り値の各要素には、どのようなシステム資源が使用されたかが記述されています。 例えば、ユーザーモードで実行した時間の合計や、プロセスがメインメモリから スワップされた回数などです。いくつかの値、例えばプロセスが使用しているメモリ 量などは、クロックティック間隔に依存します。

戻り値の最初の2つの要素は浮動小数点数で、それぞれユーザーモードでの実行した 時間の合計、システムモードで実行した時間の合計を表します。残りの値は整数値 です。これらの値の詳細な情報については、getrusage(2) のマニュアル ページを調べてください。以下は概要です。

オフセット 資源
0 ユーザーモードでの実行時間(float)
1 システムモードでの実行時間(float)
2 最大常駐サイズ
3 共有メモリのサイズ
4 共有していないメモリのサイズ
5 共有していないスタックのサイズ
6 物理 I/O を必要としないページフォルト
7 物理 I/O を必要とするページフォルト
8 スワップされた回数
9 ブロック入力操作
10 ブロック出力操作
11 送信されたメッセージ
12 受信されたメッセージ
13 受信されたシグナル
14 随意のコンテキストスイッチ
15 不随意のコンテキストスイッチ

この関数は、正しくない who パラメータが指定された場合には、 ValueError をあげます。異常なことが起こった場合には、例外 error をあげます。

getpagesize ()
システムページのバイト数を返します。(これは、ハードウエアのページサイズと 等しくなくてもかまいません。)この関数は、プロセスが使用しているメモリの バイト数を求めるために役立ちます。getrusage() により返されるタプル の3番目の要素は、メモリの使用量をページ数で表しています。この値とページ サイズとの積により、バイト数を求めることができます。

以下のシンボル RUSAGE_* を、関数 getrusage() に渡すことに より、どのプロセス情報を提供して欲しいのかを指定することができます。

RUSAGE_SELF
RUSAGE_SELF は、自分自身のプロセスに関連する情報のみを要求する場合に 使用します。

RUSAGE_CHILDREN
子プロセスに関する資源情報を要求する場合に、getrusage() に渡します。

RUSAGE_BOTH
カレントのプロセスと、その子プロセスが消費した資源情報を要求する場合に、 getrusage() に渡します。全てのシステムで有効な訳ではありません。

guido@python.org