Dans PHP, RealPath_Cache_Size est la taille du cache RealPath. Plus précisément, RealPath est une fonction de PHP pour obtenir le chemin absolu vers un fichier. Lorsque PHP est en cours d'exécution, il calcule le chemin réel du fichier via la fonction RealPath . Ce processus est implémenté en fonction du système de fichiers du système. Pour améliorer les performances, PHP met en cache les informations de chemin de fichier analysées, évitant ainsi la résolution de chemin à chaque fois.
realpath_cache_size contrôle la taille maximale de ce cache, et sa valeur par défaut est généralement de 4096 octets (4 Ko). Cela signifie que PHP stockera un cache de chemin jusqu'à 4KB. Lorsque la taille du cache dépasse cette limite, PHP effacera le cache et recommencera à remplir le nouveau chemin.
Si PHP effectue fréquemment la résolution du chemin du fichier pendant l'exécution et que votre code contient un grand nombre de fichiers incluent ou nécessitent des opérations, en particulier dans les applications plus grandes, la résolution de chemin peut devenir un goulot d'étranglement des performances. Si la taille du cache est trop petite, PHP doit effacer fréquemment le cache et recalculer le chemin du fichier, réduisant ainsi l'efficacité d'exécution de l'application.
Un ajustement approprié de la valeur realpath_cache_size peut améliorer considérablement la vitesse de la résolution du chemin, en particulier lorsque des scripts de longue durée sont effectués en mode CLI. Si vous utilisez un grand nombre d'inclusions de fichiers dans votre application, l'augmentation de la taille du cache peut entraîner des améliorations de performances significatives.
realpath_cache_size peut être configuré via le fichier php.ini ou modifié dynamiquement au moment de l'exécution. Voici quelques méthodes de configuration courantes:
Vous pouvez définir RealPath_Cache_Size dans Php.ini , par exemple:
<span><span><span class="hljs-attr">realpath_cache_size</span></span><span> = </span><span><span class="hljs-number">16</span></span><span>K
</span></span>Cela signifie régler la taille du cache de chemin sur 16 Ko. Selon la taille de l'application et la complexité du fichier, vous pouvez ajuster cette valeur de manière appropriée.
Dans certains cas, vous voudrez peut-être ajuster dynamiquement realpath_cache_size pendant l'exécution du script. Cela peut être réalisé via la fonction INI_SET :
<span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">'realpath_cache_size'</span></span><span>, </span><span><span class="hljs-string">'16K'</span></span><span>);
</span></span>Cette méthode est très utile pour les ajustements temporaires en mode CLI, surtout si vous n'avez pas la permission de modifier la configuration globale PHP.ini .
Bien que l'ajustement de realpath_cache_size semble être une simple optimisation des performances, en fonctionnement réel, vous pouvez rencontrer des problèmes qui ne sont pas faciles à détecter.
Si realPath_cache_size est réglé trop grand, il peut entraîner une forte augmentation de l'utilisation de la mémoire de PHP, en particulier dans les applications à forte intensité de résolution de chemin. Les caches excessives occuperont trop de ressources de mémoire, ce qui entraînera une dégradation des performances. Par conséquent, lors de l'augmentation de la taille du cache, la capacité de mémoire du système doit être soigneusement évaluée.
Dans certains systèmes de fichiers complexes (tels que les répertoires où les liens symboliques existent), le cache de chemin de PHP peut ne pas refléter rapidement le chemin réel du fichier. Surtout lorsque le realpath_cache_size est réglé trop petit, la mise en cache de chemin peut entraîner le retour des chemins de fichier obsolètes, ce qui est très courant pendant le développement et le débogage. Pour éviter ce problème, assurez-vous de effectuer des tests suffisants après avoir modifié la configuration du cache pour vous assurer qu'il n'y a aucun problème avec la résolution du chemin.
La configuration realPath_cache_size peut fonctionner différemment en mode CLI et en mode Web. En mode Web, PHP recharge la configuration à chaque fois qu'il demande, tandis qu'en mode CLI, l'exécution du script est souvent continue et ne rafraîchit pas automatiquement le cache. Par conséquent, lorsque vous modifiez la configuration du cache en mode CLI, vous devez accorder une attention particulière au cycle d'exécution du script pour éviter la situation où le cache n'est pas nettoyé à temps.
Si le realpath_cache_size est réglé trop petit, le mécanisme de mise en cache de la résolution de chemin perdra son effet d'optimisation. Chaque fois qu'un fichier est accessible, PHP doit recalculer le chemin, ce qui augmente considérablement le temps d'exécution et conduit à la dégradation des performances. Par conséquent, lors de la définition de cette valeur, vous devez l'équilibrer en fonction des besoins réels de l'application, plutôt que de poursuivre aveuglément la maximisation du cache.
De manière générale, RealPath_Cache_Size est uniquement nécessaire pour envisager d'ajuster RealPath_Cache_Size lors de la rencontre des situations suivantes:
Vos scripts PHP reposent fortement sur l'inclusion des fichiers et les chemins de fichier sont relativement complexes.
Lors de l'exécution de scripts PHP, il est constaté que la vitesse d'analyse du chemin de fichier est plus lente, ce qui affecte les performances globales.
En mode CLI, les goulots d'étranglement des performances se produisent lors de l'exécution de scripts PHP à long terme.
Vous pouvez utiliser des journaux d'exécution PHP ou utiliser des outils d'analyse des performances pour surveiller le temps d'exécution de la fonction RealPath pour déterminer si la taille du cache doit être ajustée.
realpath_cache_size est un paramètre très important dans la configuration de PHP, et il a un impact direct sur l'efficacité de la résolution de chemin. Surtout en mode CLI PHP, lorsqu'un grand nombre d'inclusions de fichiers et de résolution de chemin est impliquée, la configuration de RealPath_Cache_Size peut efficacement améliorer les performances. Cependant, certains pièges courants doivent être prêts attention lors de l'ajustement de cette configuration, tels que le débordement du cache, l'incohérence du chemin, etc. uniquement lorsque vous rencontrez vraiment un goulot d'étranglement des performances qu'il doit être ajusté, et la taille du cache doit être soigneusement définie en fonction de la situation réelle.