In der PHP -Entwicklung ist die RealPath () -Funktion eine sehr häufig verwendete Pfadauflösungsfunktion. Um die Leistung zu verbessern, wird PHP die Ergebnisse von RealPath () Call, der als "Realpath -Cache" bezeichnet wird, zwischenspeichert. Die beiden Schlüsselfunktionen zum Verwalten und Ansehen dieses Cache sind realpath_cache_size und realpath_cache_get . In diesem Artikel werden die Funktionen und Unterschiede zwischen diesen beiden Funktionen eingeführt und einige praktische Tipps für den gemeinsamen Gebrauch weitergeben.
RealPath_Cache_Size () ist eine sehr intuitive Funktion, die die Speichergröße (in Bytes) zurückgibt, die vom aktuellen Realpath -Cache verwendet wird.
<?php
echo realpath_cache_size();
?>
Diese Funktion akzeptiert keine Parameter, der Rückgabewert ist eine Ganzzahl, die den Gesamtabdruck des aktuellen Realpath -Cache angibt.
Im Gegensatz zu Realpath_Cache_Size () gibt die Funktion realpath_cache_get () den tatsächlichen Inhalt des Cache zurück, einschließlich detaillierter Informationen aller Pfade im Cache, wie z.
<?php
print_r(realpath_cache_get());
?>
Der Rückgabewert ist ein assoziatives Array, der Schlüssel des Arrays ist der Pfad im Cache, und der Wert ist ein Array, das die folgenden Felder enthält:
Schlüssel : Die eindeutige Kennung des Cache -Elements (normalerweise ein Pfad)
IS_DIR : Ist es ein Verzeichnis?
Realpath : Wirklicher Weg
Ausgelassen : zwischengespeicherte Ablaufzeit (Zeitstempel)
Array
(
[/var/www/html/index.php] => Array
(
[key] => /var/www/html/index.php
[is_dir] =>
[realpath] => /var/www/html/index.php
[expires] => 1716626500
)
)
Merkmal | RealPath_Cache_Size | RealPath_Cache_get |
---|---|---|
Wirkung | Cache -Größe zurückgeben | Kehren Sie zu zwischengespeichertem Inhalt zurück |
Rückgabewerttyp | Ganze Zahl | Assoziatives Array |
Parameter | keiner | keiner |
Typische Verwendungen | Leistungsüberwachung/Speicheroptimierung | Debugg zwischengespeicherte Inhalte |
RealPath_Cache_Size () wird hauptsächlich für die Analyse der Leistungsüberwachung oder zur Speichernutzung verwendet, während RealPath_Cache_get () besser für die Debugging -Pfadauflösung und das Caching -Problem geeignet ist.
Wenn Sie während der Entwicklung feststellen, dass der von Realpath_Cache_Size () zurückgegebene Wert ständig zunimmt, können Sie RealPath_Cache_get () kombinieren, um zu sehen, welche Pfade zwischengespeichert werden. Überwachen Sie regelmäßig das folgende Skript:
<?php
echo "Cache size: " . realpath_cache_size() . " bytes\n";
print_r(realpath_cache_get());
?>
Analysieren Sie durch Vergleich der Ausgabe, ob unnötige Pfade häufig analysiert und dem Cache hinzugefügt werden.
In php.ini ist RealPath_Cache_Size standardmäßig 16K . Für große Projekte kann dieser Wert zu klein sein, was zu einem Rückgang der Cache -Trefferquote führt. Sie können den folgenden Code verwenden, um zu entscheiden, ob Sie diesen Wert erweitern müssen:
<?php
$cache = realpath_cache_get();
$used = realpath_cache_size();
if ($used > 15000) {
echo "Empfohlen hinzuzufügenrealpath_cache_sizeWert von,Derzeit verwendet {$used} Byte\n";
}
?>
Bei Verwendung von Anforderungen , Einfügen oder Dateien_exists , um Probleme mit der Pfadauflösung zu begegnen, können Sie direkt prüfen, ob sich der angegebene Pfad im Cache befindet und ob der Cache über realpath_cache_get () abgelaufen ist. Zum Beispiel:
<?php
$path = '/var/www/html/config.php';
$cache = realpath_cache_get();
if (isset($cache[$path])) {
echo "Dieser Weg wird zwischengespeichert:\n";
print_r($cache[$path]);
} else {
echo "Der Weg ist nicht zwischengespeichert oder abgelaufen\n";
}
?>
Diese Methode ist effizienter und informativer als herkömmliche Debugging -Methoden.
In hohen Parallelitätsszenarien kann das angemessene Erhöhen des Werts von RealPath_Cache_Size den IO -Betrieb des Dateisystems effektiv reduzieren.
Verwenden Sie RealPath_Cache_get () mit der Protokollierung, um das Verhalten der Pfadauflösung in Frameworks oder großen Projekten zu überwachen und zu optimieren.
Beachten Sie, dass RealPath_Cache_get () einen Schnappschuss des internen Cache in PHP zurückgibt und die Leistung unter verschiedenen SAPIs (wie CLI und FPM) geringfügig variieren kann.
RealPath_Cache_Size () und RealPath_Cache_get () sind zwei leistungsstarke Tools zum Verwalten von PHP -Pfadspeichern. Ersteres konzentriert sich auf die Kapazität des Cache, während letzteres den spezifischen Inhalt des Cache aufzeigt. Durch die gemeinsame Verwendung der beiden können Sie das Verhalten der Pfadauflösung in PHP -Projekten besser verstehen und optimieren, insbesondere wenn Sie große Codebasen oder Frameworks einstellen.
Weiteres Lesen auf die offizielle Dokumentation kann zugegriffen werden:
<?php
echo file_get_contents('https://www.gitbox.net/manual/en/function.realpath-cache-size.php');
?>
Wenn Sie diese beiden Funktionen gut nutzen, können Sie ein effizienteres und kontrollierbareres PHP -Anwendungssystem aufbauen.