Je constate actuellement que pour une table de base de données avec un schéma très simple (environ 5 champs), il insère de nouveaux enregistrements à un rythme d'un peu moins de ~ 50 insertions / seconde, dans mon environnement de développement local (lecteur SSD) - c'est avec aucun observateur sur le modèle remplissant les tables associées.
En utilisant SQL direct, je constate une nette amélioration - ~ 1800 insertions / seconde. Nous pensons essayer d'optimiser les performances de nos modèles, mais bien sûr, nous ne voulons pas perdre toute la stabilité et la flexibilité que le noyau Magento nous offre.
Je me demande si quelqu'un a déjà emprunté cette voie et s'il existe des gains faciles en termes de composants de la couche modèle qui peuvent être contournés de manière relativement sûre, ce qui augmentera considérablement les performances.
Des choses comme:
- Résolution de nom de classe
- avant et après les événements de sauvegarde
- Dépêches d'événements
- Transactions
- etc.
MISE À JOUR: J'ai menti, il y avait en fait quelques requêtes supplémentaires lancées par des observateurs ou des afterSave (), que j'ai vues lorsque j'ai inspecté le journal des requêtes de la base de données. L'analyse comparative d'une entité totalement simple me donne en fait ~ 300 lignes / seconde avec les modèles Magento - seuls les frais généraux MySQL sont des transactions.
la source
Réponses:
Une chose qui peut accélérer l'ensemble du site est de supprimer toutes les références à
Varien_Profiler
votre site de production. Même si le profileur est désactivé, il vérifie toujours s'il est activé afin que chaque appel àVarien_Profiler::
aboutisse à uneif
instruction supplémentaire . Bien sûr, la suppression de tous ces appels se fait au prix de ne plus pouvoir utiliser le profileur. Cependant, cela peut accélérer l'ensemble du site de 5% environ (c'est une expérience subjective, mais il y a BEAUCOUP d'appels versVarien_Profiler
Magento). J'ai en fait écrit un petit script shell pour commenter automatiquement ces appels dans tous les fichiers et je l'ajouterai à mon message demain lorsque je serai au travail et que mon code sera prêt.Comme promis maintenant le code pour commenter ces appels:
Cela devrait être exécuté dans la console Linux à la fois dans l'application / ainsi que dans le dossier lib /. Vous devrez peut-être ajuster manuellement le fichier /lib/Varien/Profiler.php par la suite. Notez également que vous devez tester cela soigneusement dans un environnement sûr avant de le prendre en direct - mais je suppose que cela devrait être évident;)
la source
find . -type f -exec grep -qF 'Varien_Profiler' {} \; -exec sed -i '/Varien_Profiler/d' {} \;
si vous préférez un oneliner rapide.Lors de l'exécution de nombreuses sauvegardes sur les modèles Magento, il est préférable de désactiver l'indexeur Magento qui ralentit le processus:
Et l'activer lorsque vous avez terminé:
la source