# getrusage

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

getrusage — 获取当前资源使用状况

### 说明

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

这是 getrusage(2) 的接口。它返回了调用自系统的数据。

### 参数

`mode`

  如果 `mode` 是 1，getrusage 会使用 `RUSAGE_CHILDREN` 来调用。

### 返回值

返回了一个包含系统返回数据的关联数组。所以条目均可通过文档中字段的名称来访问。失败时返回 `false`。

### 示例

示例 #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"]; // maximum resident set size
echo $dat["ru_ixrss"]; // 整数类型的共享内存大小
echo $dat["ru_idrss"]; // 整数类型的非共享内存大小
echo $dat["ru_minflt"]; // 页面回收次数（软分页错误）
echo $dat["ru_majflt"]; // 页面错误次数（硬分页错误）
echo $dat["ru_nsignals"]; // 接收到的信号数
echo $dat["ru_nvcsw"]; // number of voluntary context switches
echo $dat["ru_nivcsw"]; // number of involuntary context switches
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"`（仅当 `mode` 是 `RUSAGE_SELF`）
> - `"ru_maxrss"`（仅当 `mode` 是 `RUSAGE_SELF`）

> 如果使用设置 `mode` 为 `1`（`RUSAGE_CHILDREN`）的情况下调用 getrusage()，则会收集线程的资源使用情况（意味着在内部使用 `RUSAGE_THREAD` 调用此函数）。

> 注意:

> 在 BeOS 2000，仅会返回以下类型：

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

### 参见

- 系统上 getrusage(2) 的 man 页面

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