Dans le développement de PHP, la fonction RealPath () est une fonction de résolution de chemin très couramment utilisée. Pour améliorer les performances, PHP mettra en cache les résultats de l'appel RealPath () , qui est appelé "RealPath Cache". Les deux fonctions clés pour gérer et afficher ce cache sont realpath_cache_size et realpath_cache_get . Cet article présentera les fonctions et les différences entre ces deux fonctions et partagera quelques conseils pratiques pour leur utilisation conjointe.
realpath_cache_size () est une fonction très intuitive qui renvoie la taille de la mémoire (en octets) utilisée par le cache RealPath actuel.
<?php
echo realpath_cache_size();
?>
Cette fonction n'accepte pas les paramètres, la valeur de retour est un entier, indiquant l'empreinte totale du cache RealPath actuel.
Contrairement à realpath_cache_size () , la fonction realPath_cache_get () renvoie le contenu réel du cache, y compris des informations détaillées de tous les chemins dans le cache, comme l'adresse réelle du chemin, qu'il s'agisse d'un répertoire, de temps d'expiration, etc.
<?php
print_r(realpath_cache_get());
?>
La valeur de retour est un tableau associatif, la clé du tableau est le chemin du cache, et la valeur est un tableau contenant les champs suivants:
Clé : l'identifiant unique de l'élément de cache (généralement un chemin)
IS_DIR : Est-ce un répertoire
realpath : vrai chemin
Expire : temps d'expiration mis en cache (horodatage)
Array
(
[/var/www/html/index.php] => Array
(
[key] => /var/www/html/index.php
[is_dir] =>
[realpath] => /var/www/html/index.php
[expires] => 1716626500
)
)
caractéristiques | realpath_cache_size | realpath_cache_get |
---|---|---|
effet | Taille de cache de retour | Retour au contenu mis en cache |
Type de valeur de retour | Entier | Tableau associatif |
paramètre | aucun | aucun |
Utilisations typiques | Surveillance des performances / optimisation de la mémoire | Debug Cached Content |
realpath_cache_size () est principalement utilisé pour la surveillance des performances ou l'analyse d'utilisation de la mémoire, tandis que realpath_cache_get () est plus adapté à la résolution du chemin de débogage et aux problèmes de mise en cache.
Pendant le développement, si vous remarquez que la valeur renvoyée par realpath_cache_size () augmente constamment, vous pouvez combiner realPath_cache_get () pour voir quels chemins sont mis en cache. Surveillez régulièrement en utilisant le script suivant:
<?php
echo "Cache size: " . realpath_cache_size() . " bytes\n";
print_r(realpath_cache_get());
?>
En comparant la sortie, analysez si les chemins inutiles sont fréquemment analysés et ajoutés au cache.
Dans php.ini , realPath_cache_size est 16k par défaut. Pour les grands projets, cette valeur peut être trop petite, entraînant une diminution du taux de réussite du cache. Vous pouvez utiliser le code suivant pour vous aider à décider si vous devez étendre cette valeur:
<?php
$cache = realpath_cache_get();
$used = realpath_cache_size();
if ($used > 15000) {
echo "Recommandé d'ajouterrealpath_cache_sizeValeur,Actuellement utilisé {$used} octet\n";
}
?>
Lorsque vous utilisez les besoins , inclure ou file_exists pour rencontrer des problèmes de résolution de chemin, vous pouvez dire directement si le chemin spécifié est dans le cache et si le cache a expiré via realPath_cache_get () . Par exemple:
<?php
$path = '/var/www/html/config.php';
$cache = realpath_cache_get();
if (isset($cache[$path])) {
echo "Ce chemin est mis en cache:\n";
print_r($cache[$path]);
} else {
echo "Le chemin n'est pas mis en cache ou expiré\n";
}
?>
Cette méthode est plus efficace et informative que les méthodes de débogage traditionnelles.
Dans les scénarios de concurrence élevés, l'augmentation de manière appropriée de la valeur de realPath_cache_size peut réduire efficacement le fonctionnement IO du système de fichiers.
Utilisez realPath_cache_get () avec la journalisation pour surveiller et optimiser le comportement de résolution de chemin dans les cadres ou les grands projets.
Notez que realPath_cache_get () renvoie un instantané de cache interne en PHP, et les performances peuvent varier légèrement sous différents sapis (comme CLI et FPM).
realpath_cache_size () et realpath_cache_get () sont deux outils puissants pour gérer la mise en cache PHP Path. Le premier se concentre sur la capacité du cache, tandis que le second révèle le contenu spécifique du cache. En utilisant les deux ensemble, vous pouvez mieux comprendre et optimiser le comportement de résolution de chemin dans les projets PHP, en particulier lorsque vous réglez de grandes bases de code ou des cadres.
La lecture plus approfondie La documentation officielle est accessible:
<?php
echo file_get_contents('https://www.gitbox.net/manual/en/function.realpath-cache-size.php');
?>
Faire bon usage de ces deux fonctions vous aidera à créer un système d'application PHP plus efficace et plus contrôlable.