Gets the current resource usages

# getrusage

(PHP 4, PHP 5, PHP 7, PHP 8)

getrusage — Gets the current resource usages

### Description

getrusage(int `$mode` = 0): array|false

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

### Parameters

`mode`

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

### Return Values

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.

### Examples

Example #1 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)
?>`

### Notes

> Note:

> 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`).

> Note:

> 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"`

### See Also

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

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open