Vous devez d'abord décider de ce que vous testez, que ce soit le temps de rendu PHP ou le temps de chargement de la page dans le monde réel.
Dans les deux cas, l'utilisation de Firebug ne sera pas fiable - car votre connexion Internet elle-même pourrait être le goulot d'étranglement ou la raison de la gigue.
PHP Render Time
Si vous cherchez simplement à voir si le temps de rendu PHP s'est amélioré / changé - alors le moyen le plus précis est d'utiliser la sortie du profileur Magento.
Dans index.php
, décommenter
Varien_Profiler::enable();
Puis dans
Admin> Système> Configuration> Développeur
Assurez-vous que le profileur est activé.
Vous vous retrouverez avec une sortie tabulaire au bas de chaque page (front-end et back-end) décomposant le temps de chargement de la page, mesuré à partir du point de Mage::run()
départ. La toute première ligne indiquera le temps total de rendu PHP (dans Mage).
Ce sera votre chiffre le plus précis pour déterminer si vos modifications PHP font une différence dans le temps de chargement de la page, sans parler, cela identifiera les goulots d'étranglement des performances.
Temps de rendu du serveur Web PHP
Le prochain type de test consiste à prendre en compte les frais généraux du serveur Web lui-même (mais pas la connectivité du dernier kilomètre). Donc, pour que ce test soit précis et qu'il ne soit pas influencé par «Internet» lui-même, vous devez l'exécuter sur le serveur Web lui-même.
Nous utilisons notre propre utilitaire mage-perftest
(plus d'informations peuvent être trouvées ici ) - qui peuvent tester le temps de rendu PHP pur, le temps de chargement de page dans le monde réel et même les tests de concurrence.
Pour tester uniquement le temps de rendu du serveur Web PHP, vous devez utiliser (remplacer l'URL en conséquence)
./mage-perftest -u me-s1.sonassihosting.com -b
Ce test donnera une ventilation du temps de chargement de la page (pour juste l'élément PHP de la page, en ignorant tout JS / CSS / Images). La sortie ressemble à ceci,
Test Summary
============
Total files: 1
Total downloaded: 4K
Avg. page weight: 4.00K
Total time: 0.035s
Min response: 0.035s
Max response: 0.035s
Avg. page response: 0.03s
Concurrency/Repeats: 1
Transactions/s 28.57
Test URL: me-s1.sonassihosting.com
Success rate: 1/1 (100.00%)
Temps de rendu du serveur Web réel
Le dernier type de test est le temps nécessaire pour télécharger la page entière (PHP + contenu statique). Encore une fois, vous pouvez utiliser mage-perftest
pour ce faire, par exemple.
./mage-perftest -u me-s1.sonassihosting.com
Évitez tout service de test en ligne comme la peste
Il existe des outils de test de vitesse en ligne comme GTMetrix, Pingdom, etc. Ils ne vous donneront aucun résultat précis pour le profilage granulaire.
Ils ont leur place en termes de test de connectivité réseau externe, mais sont complètement inutiles comme moyen de vérifier les performances PHP réelles. Restez fidèle aux tests sur serveur / local pour cela.
Autres notes
Nous avons écrit un article sur les tests à distance et pourquoi vous devriez les éviter,
http://www.sonassi.com/knowledge-base/magento-kb/why-siege-isnt-an-accurate-test-tool-for-magento- performance/
Exécuter Magento dans un VPS est une mauvaise idée. D'autres peuvent être en désaccord - mais ce n'est pas un environnement approprié pour un magasin Magento pour un certain nombre de raisons - et nous avons répondu à BEAUCOUP de questions dans cette veine, en voici quelques-unes
mage::dispatch::routers_match
etmage::dispatch::controller::action::predispatch
semble être un goulot d'étranglement, bien que je ne sois pas sûr de la solution ... la recherche ne propose pas grand-chose.mage::dispatch::routers_match
, ce qui représente 22 secondes sur un chargement de 28 pages. Sur la même charge, il y en a aussimage::dispatch::controller::action::predispatch
à 22s,CORE::create_object_of::Mage_Core_Model_Session
à 21s etMage_Core_Model_Session_Abstract_Varien::start/start
à 21s. Je suis sûr qu'il y a quelque chose parent / enfant qui se passe, maisrouters_match
étant donné que c'est le plus long, je suppose que c'est le parent des 20 autres fonctions secondesMage
sera le plus long car il comprend tout,Routers_Match
est essentiellement la fonction suivante appelle, que tout le reste est généré à partir. Ce n'est pas le goulot d'étranglement, mais quelque chose qu'il appelle (regardez plus loin dans le tableau) l'est. N'ouvrez pas plus d'une fenêtre si vous effectuez un profilage - cela ne permettra rien.Routers_Match
il y a:DISPATCH EVENT:controller_action_predispatch
au 21.0710, etOBSERVER: log
au 21.0565Il s'agit très probablement d'un problème de serveur et non d'un problème de Magento. Selon le type de serveur que vous utilisez, vous pouvez obtenir un temps de chargement inférieur à une seconde. Vous pouvez même exécuter des tests plus sophistiqués ici: http://www.magespeedtest.com/ . Vous pouvez également consulter la vitesse d'autres fournisseurs de serveurs.
Je recommanderais également d'utiliser le rapport sur les chutes d'eau de http://www.webpagetest.org/ et de voir d'où vient exactement votre "lenteur". Il le décomposera en parties (comme le temps qu'il faut pour télécharger chaque fichier css, js et image), ce qui peut vous aider à améliorer la vitesse.
Cela étant dit, même si vous optimisez le code, les CSS, les images et le contenu Magento au maximum, le serveur sera toujours le plus gros problème. Je recommanderais d'utiliser un fournisseur d'hébergement Magento, car leurs serveurs sont plus affinés pour aider Magento. Personnellement, j'utilise Nexcess, mais d'autres dont j'ai entendu de bonnes choses sont Sonassi Hosting et Peer1.
Il y a quelques articles sur la façon d'améliorer la vitesse, je vous recommande de lire les pages blanches sur le site Web de Magento.
Bien qu'il soit davantage orienté vers Enterprise, vous pouvez toujours bénéficier de nombreux conseils. Assurez-vous également de garder Magento à jour! Vous ne devriez pas tomber plus de deux versions de la version actuelle.
la source