(PHP 4, PHP 5, PHP 7, PHP 8)
getrusage — Devuelve el nivel de utilización de los recursos
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.
mode
Si mode es igual a 1,
getrusage() será llamado con
el argumento RUSAGE_CHILDREN.
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.
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)
?>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 simodevaleRUSAGE_SELF)"ru_maxrss"(solo simodevaleRUSAGE_SELF)Si getrusage() es llamado con el argumento
modevaliendo1(RUSAGE_CHILDREN), entonces la utilización de los recursos para los hilos son recolectados (lo que significa que, internamente, la función es llamada conRUSAGE_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"
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.BeOS support is removed in PHP 7.3:
https://github.com/php/php-src/blob/php-7.3.0alpha1/NEWS 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.