Heim  >  Artikel  >  Backend-Entwicklung  >  Ausführliche Erklärung, wie man die Speicher- und CPU-Auslastung in PHP überprüft

Ausführliche Erklärung, wie man die Speicher- und CPU-Auslastung in PHP überprüft

伊谢尔伦
伊谢尔伦Original
2017-06-29 13:13:234983Durchsuche

1Speichernutzung anzeigen

Die Beobachtung der Speichernutzung Ihres Programms kann Ihnen helfen, Ihren Code besser zu optimieren.
PHP verfügt über einen Garbage-Collection-Mechanismus und einen sehr komplexen Speicherverwaltungsmechanismus. Sie können herausfinden, wie viel Speicher Ihr Skript verwendet. Um die aktuelle Speichernutzung zu erfahren, können Sie die Funktion ?memory_get_usage() verwenden. Wenn Sie die maximale Speichernutzung wissen möchten, können Sie die Funktion memory_get_peak_usage()-Funktion.

echo "Initial: ".memory_get_usage()." bytes \n";
/* 输出
Initial: 361400 bytes
*/
// 使用内存
for ($i = 0; $i < 100000; $i++) {
$array []= md5($i);
}
// 删除一半的内存
for ($i = 0; $i < 100000; $i++) {
unset($array[$i]);
}
echo "Final: ".memory_get_usage()." bytes \n";
/* prints
Final: 885912 bytes
*/
echo "Peak: ".memory_get_peak_usage()." bytes \n";
/* 输出峰值
Peak: 13687072 bytes
*/

2. Überprüfen Sie die CPU-Auslastung Verwenden Sie die Funktion ?
getrusage(), um Sie über die CPU-Auslastung zu informieren. Beachten Sie, dass diese Funktion unter Windows nicht verfügbar ist.

print_r(getrusage());
/* 输出
Array
(
[ru_oublock] => 0
[ru_inblock] => 0
[ru_msgsnd] => 2
[ru_msgrcv] => 3
[ru_maxrss] => 12692
[ru_ixrss] => 764
[ru_idrss] => 3864
[ru_minflt] => 94
[ru_majflt] => 0
[ru_nsignals] => 1
[ru_nvcsw] => 67
[ru_nivcsw] => 4
[ru_nswap] => 0
[ru_utime.tv_usec] => 0
[ru_utime.tv_sec] => 0
[ru_stime.tv_usec] => 6269
[ru_stime.tv_sec] => 0
)
*/
Diese Struktur erscheint sehr unklar, es sei denn, Sie kennen die CPU sehr gut. Nachfolgend einige Erläuterungen:

ru_oublock: Blockausgabevorgangru_inblock: Blockeingabevorgang
ru_msgsnd: gesendete Nachricht
ru_msgrcv: empfangene Nachricht
ru_maxrss: maximale Größe des residenten Aufbewahrungssatzes
ru_ixrss: Gesamtgröße des gemeinsam genutzten Speichers
ru_idrss: Gesamtgröße des nicht gemeinsam genutzten Speichers
ru_minflt: Seitenrecycling
ru_majflt: Seitenungültigmachung
ru_nsignals: Empfangene Signale
ru_nvcsw: Aktive Kontextumschaltung
ru_nivcsw: Passive Kontextumschaltung
ru_nswap: Swap-Bereich
ru_utime.tv_usec: Benutzermoduszeit (Mikrosekunden)
ru_utime.tv_sec: Benutzermoduszeit (Sekunden)
ru_stime.tv_usec: Systemkernelzeit (Mikrosekunden)
ru_stime.tv_sec: Systemkernzeit? (Sekunden)

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung, wie man die Speicher- und CPU-Auslastung in PHP überprüft. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn