getrusage

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

getrusageDevuelve el nivel de utilización de los recursos

Descripción

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

Es una interfaz a la función del sistema getrusage(2). Devuelve un array asociativo que contiene las informaciones devueltas por esta llamada al sistema.

Parámetros

mode

Si mode es igual a 1, getrusage() será llamado con el argumento RUSAGE_CHILDREN.

Valores devueltos

Devuelve un array asociativo que contiene los datos devueltos desde la llamada al sistema. Todas las entradas son accesibles utilizando sus nombres de campos documentados. Devuelve false en caso de error.

Ejemplos

Ejemplo #1 Ejemplo con getrusage()

<?php
$dat
= getrusage();
echo
$dat["ru_oublock"]; // número de operaciones de bloque de salida
echo $dat["ru_inblock"]; // número de operaciones de bloque de entrada
echo $dat["ru_msgsnd"]; // número de mensajes IPC enviados
echo $dat["ru_msgrcv"]; // número de mensajes IPC recibidos
echo $dat["ru_maxrss"]; // tamaño máximo del grupo de residentes
echo $dat["ru_ixrss"]; // tamaño de la memoria compartida integral
echo $dat["ru_idrss"]; // tamaño integral de los datos no compartidos
echo $dat["ru_minflt"]; // número de páginas recuperadas (falta de página menor)
echo $dat["ru_majflt"]; // número de faltas de página (falta de página mayor)
echo $dat["ru_nsignals"]; // número de señales recibidas
echo $dat["ru_nvcsw"]; // número de cambios de contexto voluntarios
echo $dat["ru_nivcsw"]; // número de cambios de contexto involuntarios
echo $dat["ru_nswap"]; // tamaño de la memoria swap
echo $dat["ru_utime.tv_usec"]; // tiempo de usuario utilizado (en microsegundos)
echo $dat["ru_utime.tv_sec"]; // tiempo de usuario utilizado (en segundos)
echo $dat["ru_stime.tv_usec"]; // tiempo de sistema utilizado (en microsegundos)
echo $dat["ru_stime.tv_sec"]; // tiempo de sistema utilizado (en segundos)
?>

Notas

Nota:

Bajo Windows, la función getrusage() solo va a devolver los siguientes miembros:

  • "ru_stime.tv_sec"
  • "ru_stime.tv_usec"
  • "ru_utime.tv_sec"
  • "ru_utime.tv_usec"
  • "ru_majflt" (solo si mode vale RUSAGE_SELF)
  • "ru_maxrss" (solo si mode vale RUSAGE_SELF)

Si getrusage() es llamado con el argumento mode valiendo 1 (RUSAGE_CHILDREN), entonces la utilización de los recursos para los hilos son recolectados (lo que significa que, internamente, la función es llamada con RUSAGE_THREAD).

Nota:

Bajo BeOS 2000, solo los siguientes miembros son devueltos:

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

Ver también

  • La página del manual getrusage(2) de su sistema

add a note

User Contributed Notes 3 notes

up
6
jlh at gmx dot ch
8 years ago
Note that this function returns rusage of the current process. In a web environment where you have long running apache processes that serve several requests with PHP executions, this will return cumulative timings and is therefore not suitable for telling how much user time your used. The best you could do is to call getrusage() once at the beginning and once at the end and calculate the difference.
up
5
Domas Mituzas
17 years ago
getrusage() reports kernel counters that are updated only once application loses context and a switch to kernel space happens. For example on modern Linux server kernels that would mean that getrusage() calls would return information rounded at 10ms, desktop kernels - at 1ms.

getrusage() isn't usable for micro-measurements at all - and getmicrotime(true) might be much more valuable resource.
up
1
Anonymous
7 years ago
To Top