In der PHP -Entwicklung sind Leistungsoptimierung und Ressourcenmanagement sehr wichtige Links. Wenn Sie verstehen, wie viel Speicher das Skript während der Laufzeit einnimmt, können Entwickler die Speicherverluste oder eine unangemessene Speicherverwendung rechtzeitig entdecken und so eine gezielte Optimierung durchführen. Die integrierte Memory_get_USage -Funktion von PHP ist ein leistungsstarkes Tool, um die aktuelle Skriptspeicherverwendung zu überwachen. In diesem Artikel wird die Verwendung dieser Funktion im Detail erläutert und Ihnen helfen, seine Nutzungsfähigkeiten auf der Grundlage der tatsächlichen Anwendungsszenarien zu meistern.
MEAMMEIT_GET_USAGE ist eine integrierte Funktion, die von PHP bereitgestellt wird, um die Anzahl der vom aktuellen Skript besetzten Speicherbytes zurückzugeben. Die grundlegende Syntax ist wie folgt:
memory_get_usage(bool $real_usage = false): int
Der Parameter $ real_usage ist ein boolescher Wert, der sich gegen False definiert.
Wenn falsch , gibt die Funktion die Speichergröße zurück, die von PHP an das Skript angewendet wird, was nicht unbedingt den physischen Speicher bedeutet, der dem Skript tatsächlich zugeordnet ist.
Wenn der wahre Speichergröße dem PHP -Skript zugewiesen wird, wird zurückgegeben, was möglicherweise größer ist als der Standard -Rückgabewert.
<?php
echo "Erstspeicherverbrauch: " . memory_get_usage() . " Byte\n";
$array = range(1, 10000);
echo "Speicherverbrauch nach dem Erstellen eines Arrays: " . memory_get_usage() . " Byte\n";
?>
Dieser Code gibt zunächst die anfängliche Speicherverwendung des Skripts aus, erstellt dann ein Array von 10.000 Ganzzahlen und gibt schließlich die aktuelle Speicherverwendung aus.
In großen Anwendungen können komplexe Schleifen durchgeführt werden oder große Datenmengen geladen werden. Eine rechtzeitige Überwachung des Speicherverbrauchs kann verhindern, dass Skripte aufgrund der Erschöpfung der Speicherabstürzung abbrechen.
<?php
echo "Starten Sie die Speicherverbrauch von Skripten: " . memory_get_usage() . " Byte\n";
for ($i = 0; $i < 1000; $i++) {
$data = str_repeat("A", 10000);
if ($i % 100 === 0) {
echo "1. {$i} Verbrauch der zweiten Schleife Speicher: " . memory_get_usage() . " Byte\n";
}
}
echo "Beenden Sie die Speicherverbrauch per Skript: " . memory_get_usage() . " Byte\n";
?>
Durch das Aufrufen von MEAMMEIT_GET_USAGE vor und nach dem Schlüsselcode -Segment können die Auswirkungen verschiedener Schreibmethoden oder Datenstrukturen auf Speicher verglichen werden, wodurch gezielte Optimierung durchgeführt wird.
PHP hat auch eine ähnliche Funktion memory_get_peak_usage , mit der der maximale Speicherpeak erhalten wird, der während des Ausgangs des Skripts verwendet wird. Es akzeptiert auch einen Parameter $ real_usage .
<?php
echo "Speicherspitzenwert: " . memory_get_peak_usage() . " Byte\n";
?>
Durch die Kombination der Verwendung von beiden können Entwickler die Erinnerungsverwendung besser verstehen:
<?php
echo "Anfangsspeicher: " . memory_get_usage() . " Byte\n";
$data = [];
for ($i = 0; $i < 10000; $i++) {
$data[] = md5($i);
}
echo "Aktueller Speicher: " . memory_get_usage() . " Byte\n";
echo "Speicherspitzenwert: " . memory_get_peak_usage() . " Byte\n";
?>
MEMEPE_GET_USAGE () wird verwendet, um die Speicherverwendung des aktuellen Skripts zu erhalten.
Durch diesen kann der Speicherverbrauch überwacht und analysiert werden, und potenzielle Leistungsprobleme können gefunden werden.
Mit memory_get_peak_usage () können Sie den maximalen Speicherverbrauchspeak verstehen.
Bei groß angelegten Projekten und ressourcenempfindlichen Projekten ist die rationale Verwendung dieser beiden Funktionen von großer Bedeutung für die Leistungsoptimierung.
<?php
echo "Erstspeicherverbrauch: " . memory_get_usage() . " Byte\n";
$array = range(1, 10000);
echo "Speicherverbrauch nach dem Erstellen eines Arrays: " . memory_get_usage() . " Byte\n";
for ($i = 0; $i < 1000; $i++) {
$data = str_repeat("A", 10000);
if ($i % 100 === 0) {
echo "1. {$i} Verbrauch der zweiten Schleife Speicher: " . memory_get_usage() . " Byte\n";
}
}
echo "Speicherspitzenwert: " . memory_get_peak_usage() . " Byte\n";
?>