Realpath_cache_size est un élément de configuration souvent négligé mais très prometteur lors de l'exécution de l'optimisation des performances PHP. Il affecte la façon dont PHP gère la résolution du chemin du fichier, qui peut être appelé dans chaque opération de fichier, donc son effet d'optimisation est particulièrement évident dans les grands projets.
Dans PHP, lorsque vous utilisez des fonctions inclue , require , file_exists () ou is_readable () , PHP doit analyser le chemin dans lequel vous passez en tant que chemin absolu. Ce processus d'analyse implique le disque IO, en particulier dans les systèmes où les systèmes de fichiers sont complexes ou utilisent un grand nombre de liens symboliques, ce qui est très gourmand.
Pour accélérer ce processus, PHP fournit un "cache RealPath" qui cache les résultats du chemin analysé et évite l'analyse répétée. La taille de ce cache est contrôlée par realpath_cache_size .
Vous pouvez afficher l'utilisation actuelle du cache RealPath de la manière suivante:
<code> var_dump (realPath_cache_size ()); var_dump (realPath_cache_get ()); </code>Dans le fichier php.ini , le realpath_cache_size par défaut peut être seulement 16k, ce qui est loin d'être suffisant pour des projets complexes. Nous pouvons augmenter sa valeur de:
<code> realPath_cache_size = 4096k </code>Ou vous pouvez le définir temporairement via ini_set au moment de l'exécution:
<code> ini_set ('realPath_cache_size', '4096k'); </code>Il convient de noter que plus la valeur est grande, mieux c'est. Un cache excessif peut provoquer des déchets de mémoire. L'approche recommandée consiste à le redimensionner grâce à une surveillance réelle. Vous pouvez combiner la fonction realpath_cache_get () pour observer la vitesse de coup de cache et l'utilisation de la mémoire actuelle.
Supposons que vous développiez un grand cadre ou exécutez une application Laravel qui s'appuie sur un grand nombre d'autoloads, et il existe des milliers d'opérations de résolution de chemin dans le système. Si vous n'ajustez pas realpath_cache_size , vous pouvez rencontrer des goulots d'étranglement de performances à certaines charges élevées.
Ajuster via une configuration simple en une ligne:
<code> realPath_cache_size = 4096k </code>Cela peut réduire considérablement les frais généraux de PHP dans la résolution du chemin, améliorant ainsi la vitesse de réponse globale.
Vous pouvez également surveiller la fréquence d'appel du système de fichiers des processus PHP via des outils tels que Strace ou DTruss (sur macOS), et effectuer une comparaison et une analyse avant et après ajustement.
Continuez à surveiller : utilisez realPath_cache_get () pour analyser régulièrement l'utilisation du cache.
Évaluation raisonnable : ne définissez pas aveuglément des valeurs excessives et évaluez la mémoire du système et les exigences de performance.
Utilisation en combinaison avec OPCACHE : Si OPCACHE est activé, RealPath Cache peut encore améliorer l'efficacité de la résolution de chemin de fichier incluse.
Configuration multi-environnement : L'environnement de développement peut définir une valeur inférieure pour enregistrer la mémoire, tandis que l'environnement de production est recommandé pour le remettre.
realpath_cache_size est un outil discret mais efficace dans le réglage des performances PHP. En le définissant raisonnablement, vous pouvez réduire considérablement les frais généraux de la résolution du chemin du fichier, en particulier pour les projets avec de grands cadres et des structures de répertoires complexes. Dans le développement et le déploiement quotidiens, vous pourriez aussi bien évaluer et ajuster ce paramètre régulièrement pour que votre application PHP s'exécute plus rapidement et plus stable.
Pour afficher le contenu du cache en profondeur ou en débogage, vous pouvez utiliser le code suivant pour sortir les détails du cache actuel:
<code> print_r (realPath_cache_get ()); </code>L'ajustement de realpath_cache_size est d'empêcher PHP de prendre des détours et de prendre des lignes plus droites.