Najpierw musisz zdecydować, co testujesz, czy to tylko czas renderowania PHP - czy czas ładowania strony w świecie rzeczywistym.
W obu przypadkach użycie firebuga nie będzie niezawodne, ponieważ samo połączenie internetowe może być wąskim gardłem lub przyczyną zakłóceń.
Czas renderowania PHP
Jeśli chcesz tylko sprawdzić, czy czas renderowania PHP poprawił się / zmienił - najdokładniejszym sposobem jest użycie danych wyjściowych z profilera Magento.
W index.php
, brak komentarza
Varien_Profiler::enable();
Następnie w
Administrator> System> Konfiguracja> Deweloper
Upewnij się, że profiler jest włączony.
Otrzymasz tabelaryczny wynik na dole każdej strony (front-end i back-end) z podziałem czasu wczytywania strony, mierzonej od momentu Mage::run()
rozpoczęcia. Pierwszy wiersz wskaże całkowity czas renderowania PHP (w Mag).
To będzie twoja najdokładniejsza liczba, jeśli chodzi o ustalenie, czy twoje zmiany PHP mają wpływ na czas ładowania strony, nie wspominając, że zidentyfikuje wszelkie wąskie gardła wydajności.
Czas renderowania serwera WWW PHP
Następnym typem testu jest uwzględnienie narzutów samego serwera WWW (ale nie łączności ostatniej mili). Aby ten test był dokładny i nie miał na niego wpływu sam „internet” - należy go uruchomić na samym serwerze internetowym.
Używamy własnego narzędzia mage-perftest
(więcej informacji można znaleźć tutaj ) - które może przetestować czysty czas renderowania PHP, rzeczywisty czas ładowania strony, a nawet testy współbieżności.
Aby przetestować tylko czas renderowania serwera WWW PHP, należy użyć (odpowiednio zastąp adres URL)
./mage-perftest -u me-s1.sonassihosting.com -b
Ten test da podział czasu wczytywania strony (tylko dla elementu PHP strony, ignorując wszelkie JS / CSS / Obrazy). Dane wyjściowe wyglądają mniej więcej tak:
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%)
Serwer czasu rzeczywistego w sieci Web
Ostatnim typem testu jest czas potrzebny na pobranie całej strony (PHP + zawartość statyczna). Ponownie możesz użyć mage-perftest
do tego celu, np.
./mage-perftest -u me-s1.sonassihosting.com
Unikaj jakichkolwiek usług testowania online, takich jak zaraza
Istnieje kilka internetowych narzędzi do testowania prędkości, takich jak GTMetrix, Pingdom itp. Nie zapewnią one żadnego dokładnego wyniku szczegółowego profilowania.
Mają swoje miejsce pod względem testowania łączności z zewnętrznymi sieciami, ale są całkowicie bezużyteczne jako metoda sprawdzania rzeczywistej wydajności PHP. W tym celu trzymaj się testów na serwerze / lokalnych.
Inne notatki
Napisaliśmy artykuł na temat zdalnego testowania i dlaczego należy go unikać,
http://www.sonassi.com/knowledge-base/magento-kb/why-siege-isnt-an-accurate-test-tool-for-magento- występ/
Uruchamianie Magento na VPS to zły pomysł. Inni mogą się nie zgadzać - ale z wielu powodów nie jest to odpowiednie środowisko dla sklepu Magento - i odpowiedzieliśmy na wiele pytań w tym stylu, oto kilka
mage::dispatch::routers_match
image::dispatch::controller::action::predispatch
wydają się być gardłem, choć nie jestem pewien, co jest rozwiązaniem tam ... wyszukiwanie nie wymyślić wiele.mage::dispatch::routers_match
, odpowiadając za 22 sekundy przy ładowaniu strony 28s. Przy tym samym obciążeniu jest równieżmage::dispatch::controller::action::predispatch
o 22,CORE::create_object_of::Mage_Core_Model_Session
21 iMage_Core_Model_Session_Abstract_Varien::start/start
21. Jestem pewien, że dzieje się coś nadrzędnego / dziecięcego, ale biorąc pod uwagę fakt,routers_match
że jest najdłuższy,Mage
to najdłużej, ponieważ obejmuje wszystko,Routers_Match
jest w zasadzie następną wywoływaną funkcją, od której wszystko inne jest odradzane. To nie jest wąskie gardło, ale coś, co woła (spójrz dalej w dół tabeli). Nie otwieraj więcej niż 1 okna, jeśli profilujesz - to nic nie da.Routers_Match
znajduje się:DISPATCH EVENT:controller_action_predispatch
o 21.0710, aOBSERVER: log
o 21.0565Najprawdopodobniej jest to problem z serwerem, a nie problem Magento. W zależności od rodzaju używanego serwera czas ładowania może być krótszy niż sekunda. Możesz nawet uruchomić bardziej zaawansowane testy tutaj: http://www.magespeedtest.com/ . Możesz także sprawdzić prędkość od innych dostawców serwerów tam.
Poleciłbym również skorzystać z raportu o wodospadzie z http://www.webpagetest.org/ i sprawdzić, skąd dokładnie może pochodzić twoja „powolność”. Rozbije go na części (na przykład ile czasu zajmuje pobranie każdego pliku css, js i obrazu), co może pomóc w zwiększeniu prędkości.
To powiedziawszy, nawet jeśli w pełni zoptymalizujesz kod Magento, css, js, obrazy i zawartość, serwer zawsze będzie największym problemem. Polecam skorzystanie z Magento Hosting Provider, ponieważ ich serwery są lepiej dostrojone, aby pomóc Magento. Osobiście korzystam z Nexcess, ale inne, o których słyszałem, to Sonassi Hosting i Peer1.
Jest kilka artykułów o tym, jak poprawić prędkość, polecam lekturę białych stron na stronie Magento.
Chociaż jest bardziej ukierunkowany na Enterprise, nadal możesz skorzystać z wielu porad. Upewnij się także, że Magento jest na bieżąco! Nie powinieneś upaść więcej niż dwie wersje z bieżącej wersji.
źródło