Heim > Artikel > Backend-Entwicklung > Ausführliche Erklärung, wie man die Speicher- und CPU-Auslastung in PHP überprüft
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!