3 votes

Le chargement paresseux d'APC améliore-t-il les performances ?

L'extension APC de PHP comprend deux paramètres de configuration permettant d'activer le chargement paresseux des fonctions et des classes ; apc.lazy_functions y apc.lazy_classes .

Mes sites web utilisent APC avec des avantages notables en termes de performances. Les paramètres de chargement paresseux ont également été activés et désactivés à plusieurs reprises, sans différence notable.

Sur Internet, il n'y a pas grand-chose sur le sujet, si ce n'est de simples discussions, mais pas de mesures.

Quelqu'un a-t-il réellement mesuré l'impact sur les performances de l'utilisation de lazy loading d'APC ou y a-t-il des personnes qui ont remarqué des différences significatives en utilisant ces paramètres ? Quand est-il avantageux d'activer le chargement paresseux ? Quand faut-il l'éviter à tout prix ?

2voto

Khez Points 5988

Cela dépend entièrement du type d'application avec laquelle vous utilisez APC.

La plupart des frameworks intègrent le chargement automatique des clases en à sens unique o autre . Cela signifie essentiellement que les paramètres de l'apc pour apc.lazy_functions y apc.lazy_classes est superflue dans le contexte des classes incluses/requises dynamiquement à la demande.

Les normes de codage ont évolué avec PHP, en particulier avec l'acceptation de la norme Norme de codage PSR-1 Non seulement les frameworks mettent en œuvre l'autoloading, mais ils garantissent également qu'une seule classe est définie par fichier.

Cela signifie que apc.lazy_classes ne fait que copier les classes des fichiers inclus au fur et à mesure de leur utilisation, mais les normes de codage actuelles garantissent que les fichiers sont inclus en fonction des besoins et que les fichiers inclus ne définissent qu'une seule classe, celle qui est immédiatement utilisée.

Utilisation apc.lazy_functions y apc.lazy_classes avec d'autres projets (plus anciens), pourrait donner de meilleurs résultats.


Toutefois, en ce qui concerne les apc.lazy_functions Ce paramètre ne couvre que les fonctions de portée globale définies dans les fichiers. Pas les méthodes individuelles des classes. La nomenclature peut induire en erreur, mais les fonctions de classe sont appelées distinctement methods .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X