getrusage

Gets the current resource usages

&reftitle.description; ``array``false```getrusage` `int` `mode` 0

This is an interface to `getrusage(2)`. It gets data returned from the system call.

&reftitle.parameters;

`mode`

- If `mode` is 1, getrusage will be called with `RUSAGE_CHILDREN`.

&reftitle.returnvalues;

Returns an associative array containing the data returned from the system call. All entries are accessible by using their documented field names. Returns &false; on failure.

&reftitle.changelog;

&Version; | &Description;
7.0.0 | This function is now supported on Windows.

&reftitle.examples;

### `getrusage` example

    <?php
    $dat = getrusage();
    echo $dat["ru_oublock"];       // number of block output operations
    echo $dat["ru_inblock"];       // number of block input operations
    echo $dat["ru_msgsnd"];        // number of IPC messages sent
    echo $dat["ru_msgrcv"];        // number of IPC messages received
    echo $dat["ru_maxrss"];        // maximum resident set size
    echo $dat["ru_ixrss"];         // integral shared memory size
    echo $dat["ru_idrss"];         // integral unshared data size
    echo $dat["ru_minflt"];        // number of page reclaims (soft page faults)
    echo $dat["ru_majflt"];        // number of page faults (hard page faults)
    echo $dat["ru_nsignals"];      // number of signals received
    echo $dat["ru_nvcsw"];         // number of voluntary context switches
    echo $dat["ru_nivcsw"];        // number of involuntary context switches
    echo $dat["ru_nswap"];         // number of swaps
    echo $dat["ru_utime.tv_usec"]; // user time used (microseconds)
    echo $dat["ru_utime.tv_sec"];  // user time used (seconds)
    echo $dat["ru_stime.tv_usec"]; // system time used (microseconds)
    echo $dat["ru_stime.tv_sec"];  // system time used (seconds)
    ?>

&reftitle.notes;

On Windows `getrusage` will only return the following members:

- `"ru_stime.tv_sec"`
- `"ru_stime.tv_usec"`
- `"ru_utime.tv_sec"`
- `"ru_utime.tv_usec"`
- `"ru_majflt"` (only if `mode` is `RUSAGE_SELF`)
- `"ru_maxrss"` (only if `mode` is `RUSAGE_SELF`)

If `getrusage` is called with `mode` set to `1` (`RUSAGE_CHILDREN`), then resource usage for threads are collected (meaning that internally the function is called with `RUSAGE_THREAD`).

on BeOS 2000, only the following members are returned:

- `"ru_stime.tv_sec"`
- `"ru_stime.tv_usec"`
- `"ru_utime.tv_sec"`
- `"ru_utime.tv_usec"`

&reftitle.seealso;

- Your system's man page on `getrusage(2)`