getrusage

現在のリソース使用状況を取得する

説明

arrayfalse getrusage(int $mode = 0)

この関数は、getrusage(2) へのインターフェイスです。 システムコールから返されたデータを含む連想配列を返します。

パラメータ

mode

mode が 1 の場合、getrusage は RUSAGE_CHILDREN を付けてコールされます。

戻り値

システムコールから返されたデータを含む連想配列を返します。 すべてのエントリは、記述されたフィールド名を用いてアクセス可能です。 失敗時に false を返します。

変更履歴

バージョン 説明
7.0.0 この関数は、Windows でサポートされるようになりました。

例1 getrusage の例

<?php
$dat = getrusage();
echo $dat["ru_oublock"];       // ブロック出力操作の回数
echo $dat["ru_inblock"];       // ブロック入力操作の回数
echo $dat["ru_msgsnd"];        // IPC メッセージの送信数
echo $dat["ru_msgrcv"];        // IPC メッセージの受信数
echo $dat["ru_maxrss"];        // RAM 上に存在する仮想ページのサイズ(resident set size) の最大値
echo $dat["ru_ixrss"];         // 共有メモリサイズの合計値
echo $dat["ru_idrss"];         // 非共有データの合計サイズ
echo $dat["ru_minflt"];        // ページの再利用 (ソフトページフォルト)
echo $dat["ru_majflt"];        // ページフォルトの数 (hard page faults)
echo $dat["ru_nsignals"];      // 受信したシグナル
echo $dat["ru_nvcsw"];         // 意図したコンテキストスイッチ
echo $dat["ru_nivcsw"];        // 意図しないコンテキストスイッチ
echo $dat["ru_nswap"];         // スワップの数
echo $dat["ru_utime.tv_usec"]; // 使用するユーザー時間 (マイクロ秒)
echo $dat["ru_utime.tv_sec"];  // 使用するユーザー時間 (秒)
echo $dat["ru_stime.tv_usec"]; // 使用するシステム時間 (マイクロ秒)
echo $dat["ru_stime.tv_sec"];  // 使用するシステム時間 (秒)
?>

注意

注意:

Windows では、getrusage は以下のメンバーしか帰しません。

  • "ru_stime.tv_sec"
  • "ru_stime.tv_usec"
  • "ru_utime.tv_sec"
  • "ru_utime.tv_usec"
  • "ru_majflt" (modeRUSAGE_SELF である場合のみ)
  • "ru_maxrss" (modeRUSAGE_SELF である場合のみ)

getrusage を呼び出す際に mode1 (RUSAGE_CHILDREN) を指定すると、 各スレッドのリソース使用状況を収集します (つまり、内部的には RUSAGE_THREAD を指定してこの関数が呼ばれるということです)。

注意:

BeOS 2000 では、以下のメンバーしか返しません。

  • "ru_stime.tv_sec"
  • "ru_stime.tv_usec"
  • "ru_utime.tv_sec"
  • "ru_utime.tv_usec"

参考

  • getrusage(2) についてのシステムの man ページ