Quand devrais-je utiliser le compilateur Magento

44

Je vois souvent des gens mentionner qu'ils utilisent la fonctionnalité de compilateur de Magento.

Je ne me demande jamais quels cas vous devriez utiliser et quel gain de performance vous avez alors.

[DISCLAIMER]: Comme j'ai récemment eu une suggestion de modification à ce sujet. Cette question ne concerne pas la di-compilation de magento2, elle n’est même pas légèrement liée à magento2.

Flyingmana
la source
1
Voir mes repères avec le compilateur: byte.nl/blog/should-i-use-the-magento-compiler
Willem
1
votre configuration apc est manquante, nous avons également le module opcache dans les versions actuelles et aucune version php prise en charge ne fonctionne plus avec apc. Les modifications logicielles, tout comme les solutions et les solutions de contournement.
Flyingmana

Réponses:

43

[DISCLAIMER] Cette réponse ne concerne que le compilateur de Magento 1, le compilateur de Magento 2 ayant un but / effet complètement différent.

Vous devriez l'utiliser jamais.

Parce que PHP a développé plusieurs mécanismes pour améliorer les applications contenant beaucoup de fichiers.

Moyens: le php opCache dans la version actuelle de php offre de meilleures améliorations en termes de performances, s’il est correctement configuré. Par exemple, utiliser une limite suffisamment élevée pour les fichiers mis en cache. De plus, opCache présente des améliorations pour les fonctions accédant au système de fichiers qui fonctionnent à un niveau plus profond que aoe_classpathcache et améliorent encore plus les performances.

En fin de compte, nous avons un chargement automatique qui ne nécessite pas plus de quelques ms sans le compilateur. Il y a même des cas où le compilateur a nui aux performances. Sans parler des problèmes fastidieux de débogage des applications utilisant le compilateur.

de plus, opCache améliore non seulement le chargement automatique, mais les optimisations de la fonction de système de fichiers améliorent même le chargement des modèles et des fichiers de présentation.

http://php.net/manual/en/opcache.configuration.php

Flyingmana
la source
2
Vous suggérez donc de désactiver la compilation, d'effacer les fichiers compilés et d'utiliser opCache à la place?
Perissf
1
si vous le résumez, oui
Flyingmana
3
Le compilateur est un kludge le plus utile avec les versions 1.4.1.1, 1.4.2.0 et éventuellement 1.5.1.0. À partir de la version 1.5.1.0, l’optimisation du code a commencé à la rendre moins efficace. Quelque part autour de 1.6 ou 1.7, une personne a effectué des tests A / B et a découvert qu’elle pouvait effectivement ralentir le système sous certaines configurations de serveur.
Fiasco Labs
3
Deux paramètres pour l’interpréteur PHP afin de vous aider avec les milliards de fichiers pouvant être créés si vous avez un accès système ou pouvez demander à votre fournisseur d’hébergement de faire la modification pour vous -> realpath_cache_size=64ket realpath_cache_ttl=3600. 64k semble être le bon choix, les gens ont recommandé plus, mais les tests de performance montrent que c'est un gaspillage de mémoire.
Fiasco Labs
2
@ FiascoLabs Avez-vous un lien / une source vers vos chiffres de "test A / B"? Ce serait bien à voir.
Aram Papazian, le
11

"Quand devrais-je utiliser le compilateur Magento"

Si pour une raison quelconque votre système n’a pas d’accélérateur PHP installé (improbable mais possible)

Si vous utilisez une version très ancienne de magento (vous ne devriez vraiment pas l'être)

Pourquoi devriez-vous le garder désactivé?

Je suis totalement d'accord avec le commentaire de Fiasco Labs ci-dessus. Bien que vous n'ayez pas indiqué le numéro de version de magento, c'est le cas de toutes les versions de magento (CE) supérieures à 1.6.1, si vous activez le compilateur sur un système disposant déjà d'un accélérateur php (comme PHP-APC, etc.) dans tout votre magasin. , depuis les pages d’administration jusqu’à ce que le client s’exécute sera considérablement plus lent, pire encore, de nombreux plugins / mods que vous trouverez sur magento connect ne fonctionneront pas correctement avec le compilateur actif.

En bref, en 2014, il n’ya jamais de bonne raison d’activer le compilateur.

Alistair
la source