PHP 8.4.1 Released!

getrusage

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

getrusageRetourne le niveau d'utilisation des ressources

Description

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

C'est une interface à la fonction système getrusage(2). Elle retourne un tableau associatif contenant les informations renvoyées par cet appel système.

Liste de paramètres

mode

Si mode est égal à 1, getrusage() sera appelé avec le paramètre RUSAGE_CHILDREN.

Valeurs de retour

Retourne un tableau associatif contenant les données retournées depuis l'appel système. Toutes les entrées sont accessibles en utilisant leurs noms de champs documentés. Retourne false en cas d'échec.

Historique

Version Description
7.0.0 Cette fonction est maintenant supportée sous Windows.

Exemples

Exemple #1 Exemple avec getrusage()

<?php
$dat
= getrusage();
echo
$dat["ru_oublock"]; // nombre d'opération de block de sortie
echo $dat["ru_inblock"]; // nombre d'opération de block d'entrée
echo $dat["ru_msgsnd"]; // nombre de messages IPC envoyé
echo $dat["ru_msgrcv"]; // nombre de messages IPC reçu
echo $dat["ru_maxrss"]; // taille maximale du groupe de résidents
echo $dat["ru_ixrss"]; // taille de la mémoire partagée intégrale
echo $dat["ru_idrss"]; // taille intégrale des données non partagées
echo $dat["ru_minflt"]; // nombre de page récupéré (faute de page mineure)
echo $dat["ru_majflt"]; // nombre de défauts de page (faute de page majeure)
echo $dat["ru_nsignals"]; // nombre de signaux reçu
echo $dat["ru_nvcsw"]; // nombre de changement de contexte volontaire
echo $dat["ru_nivcsw"]; // nombre de changement de contexte involontaire
echo $dat["ru_nswap"]; // taille de la mémoire swap
echo $dat["ru_utime.tv_usec"]; // temps utilisateur utilisé (en microsecondes)
echo $dat["ru_utime.tv_sec"]; // temps utilisateur utilisé (en secondes)
echo $dat["ru_stime.tv_usec"]; // temps système utilisé (en microsecondes)
echo $dat["ru_stime.tv_sec"]; // temps système utilisé (en secondes)
?>

Notes

Note:

Sous Windows, la fonction getrusage() ne va retourner que les membres suivants :

  • "ru_stime.tv_sec"
  • "ru_stime.tv_usec"
  • "ru_utime.tv_sec"
  • "ru_utime.tv_usec"
  • "ru_majflt" (seulement si mode vaut RUSAGE_SELF)
  • "ru_maxrss" (seulement si mode vaut RUSAGE_SELF)

Si getrusage() est appelé avec le paramètre mode vallant 1 (RUSAGE_CHILDREN), alors l'utilisation de la ressource pour les threads sont collectés (ce qui signifie que, en interne, la fonction est appelée avec RUSAGE_THREAD).

Note:

Sous BeOS 2000, seuls les membres suivants sont retournés :

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

Voir aussi

  • La page de manuel getrusage(2) de votre système

add a note

User Contributed Notes 3 notes

up
10
jlh at gmx dot ch
7 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
3
Anonymous
6 years ago
up
3
Domas Mituzas
16 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.
To Top