Aktueller Standort: Startseite> Neueste Artikel> GetUSage () Returned Data Unit Analysis

GetUSage () Returned Data Unit Analysis

M66 2025-07-08
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Teil des Programms, das nicht mit diesem Artikel zusammenhängt</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Willkommen bei Read PHP Technische Artikel。\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>

<hr>

<h1></span><span><span class="hljs-title function_ invoke__">getrusage</span></span><span>() Dateneinheit Analyse zurückgegeben</h1>

<p>existieren PHP Mitte,<code></span><span><span class="hljs-title function_ invoke__">getrusage</span></span><span>()

Dieser Code gibt etwas ähnlich wie folgt aus (verschiedene Systeme können geringfügig unterschiedlich sein):

 
</span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [ru_utime.tv_sec] => </span><span><span class="hljs-number">0</span></span><span>
    [ru_utime.tv_usec] => </span><span><span class="hljs-number">123456</span></span><span>
    [ru_stime.tv_sec] => </span><span><span class="hljs-number">0</span></span><span>
    [ru_stime.tv_usec] => </span><span><span class="hljs-number">7890</span></span><span>
    [ru_maxrss] => </span><span><span class="hljs-number">34560</span></span><span>
    ...
)

2. Beschreibung von Feld und Einheit
  • ru_utime.tv_sec / ru_utime.tv_usec
    Repräsentiert die CPU-Zeit des Benutzers in Sekunden und Mikrosekunden. Die beiden können addiert werden, um eine genaue zeitaufwändige Benutzerzustands zu erhalten.
  • ru_stime.tv_sec / ru_stime.tv_usec
    Es zeigt die CPU -Zeit der Kernelstaat an, die Einheit ist das gleiche wie oben.
  • ru_maxrss
    Zeigt die maximale Größe der Resident Set an, die vom Prozess verwendet wird (MAX Resident Set -Größe). Unter Linux ist das Gerät KB (Kilobytes); Auf macOS ist das Gerät Bytes, daher ist besondere Aufmerksamkeit erforderlich.
  • ru_ixrss, ru_idrss, ru_isrss
    Diese Felder repräsentieren theoretisch die Speicherverwendung von gemeinsam genutztem Speicher, nicht geschütztem Datengedächtnis und ungeharter Stapel, sind jedoch in modernen Systemen normalerweise nicht verfügbar und der Rückgabewert beträgt 0 .
  • ru_minflt / ru_majflt
    Die Häufigkeit der Seitenfehler (Seite fehlende Ausnahme) beträgt "Häufigkeit", nicht die Zeit.
  • ru_nswap
    Die Häufigkeit, mit der ein Prozessaustausch auch die "Häufigkeit" ist.
  • ru_inblock / ru_oublock
    Die Anzahl der Blockeingangs-/Ausgabematerialien (z. B. Lesen und Schreiben in das Dateisystem) ist das Gerät "Anzahl der Blockvorgänge", nicht Bytes.
  • RU_MSGSND / RU_MSGRCV
    Die Häufigkeit, mit der die Nachricht gesendet und empfangen wird, ist "Zeit".
  • ru_signals
    Anzahl der erhaltenen Signale.
  • ru_nvcsw / ru_nivcsw
    Die Anzahl der freiwilligen/unfreiwilligen Kontextschalter.

3. Einheitumwandlungsbeispiel

Nehmen wir an, wir möchten die gesamte CPU-Zeit der Benutzerstaatlichkeit erhalten. Wir können sie so schreiben:

 
</span><span><span class="hljs-variable">$usage</span></span><span> = </span><span><span class="hljs-title function_ invoke__">getrusage</span></span><span>();
</span><span><span class="hljs-variable">$user_time</span></span><span> = </span><span><span class="hljs-variable">$usage</span></span><span>[</span><span><span class="hljs-string">"ru_utime.tv_sec"</span></span><span>] + </span><span><span class="hljs-variable">$usage</span></span><span>[</span><span><span class="hljs-string">"ru_utime.tv_usec"</span></span><span>] / </span><span><span class="hljs-number">1e6</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Zeitaufwändig für Benutzer: <span class="hljs-subst">{$user_time}</span></span></span><span> Zweite\n";

In ähnlicher Weise kann der gleiche Vorgang in der Kernel -Zustandszeit durchgeführt werden, um die Gesamtzeit der Verfahrenszeit der Prozess -CPU zu erhalten.

4.. Dinge zu beachten
  • Die von verschiedenen Betriebssystemen zurückgegebenen Einheiten können variieren, insbesondere das RU_MAXRSS -Feld.
  • Einige Felder sind auf einer bestimmten Plattform immer 0 , da die Systemimplementierung diese Datenerfassung nicht unterstützt.
  • GetTrusage () gibt Ihnen keine Echtzeitdaten von Speicherpeaks mit und eignet sich besser für die Leistungsanalyse als für die ressourcenbeschränkende Kontrolle.

Abschluss

GetUSage () ist ein wichtiges Tool, das PHP bereitstellt, um Einblick in den Konsum von Skriptressourcen zu erhalten. Das Verständnis der Bedeutung und Einheit seines Rückgabewerts hilft Entwicklern, detailliertere Leistungsstimmen und Überwachung durchzuführen.