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.
getrusage
(PHP 4, PHP 5)
getrusage — Obtiene el uso de los recursos actuales
Descripción
array getrusage
([ int
$who = 0
] )Esta es una interfaz de getrusage(2). Obtiene datos devueltos de la llamada al sistema.
Parámetros
-
who -
Si el parámetro
whoes 1, getrusage será llamado conRUSAGE_CHILDREN.
Valores devueltos
Devuelve un array asociativo que contiene los datos devueltos por la llamada al sistema. Todas las entradas son accesibles mediante el uso de sus nombres de campo documentado.
Ejemplos
Ejemplo #1 getrusage() ejemplo
<?php
$dat = getrusage();
echo $dat["ru_nswap"]; // número de intercambios
echo $dat["ru_majflt"]; // número de fallos de página
echo $dat["ru_utime.tv_sec"]; // tiempo de usuario utilizado (segundos)
echo $dat["ru_utime.tv_usec"]; // tiempo de usuario usado (microsegundos)
?>
Notas
Nota: Esta función no está implementada en plataformas Windows.
Ver también
- Página principal de sistema sobre getrusage(2)
Domas Mituzas
14-Jan-2008 01:22
php at lavrenko dot pp dot ru
19-Oct-2005 04:21
The author of the article mentioned in the previous post says "Once I got a negative value for both times - I have absolutely no clue how that can happen.". This is because time in microseconds is not padded with zeros from the left, therefore, you cannot concatenate the two numbers. Instead, you should normalize the values and then add them up:
$dat["ru_utime.tv_sec"]*1e6+$dat["ru_utime.tv_usec"];
