Odpowiedzi:
Najpierw określ, czy to renderowanie frontonu, czy faktyczne wykonanie skryptu jest wolne. Sprawdź w konsoli programisty w przeglądarce, czy jest czas na pierwszy bajt . Tyle czasu zajmuje skryptowi przetworzenie na serwerze
Na zrzucie ekranu widać, że jest dość niski (200 ms), więc w tym przypadku problem nie dotyczyłby serwera, ale frontonu. Jeśli to się skończy, powiedzmy, sekundę, którą możesz chcieć zoptymalizować.
Zanim włączysz kilka boosterów i dodatkowe buforowanie, które nie jest poprawką, po prostu łatka lub pomoc zespołu, aby ukryć prawdziwy problem, spróbuj dowiedzieć się, co dokładnie jest wolne. Możesz także użyć do tego kilku narzędzi.
Wolne zapytania
Magento może być dość ciężkie w bazie danych, więc włączenie Powolnego dziennika zapytań może być dobrym miejscem do rozpoczęcia. Sprawdź ten post, jak go włączyć. Dziennik wyświetli każde zapytanie, które trwa dłużej niż X sekund.
Profile
Profile pomagają uzyskać wgląd w to, co dzieje się w kodzie. W przypadku Magento polecam zacząć od Aoe_Profiler . Po prostu zainstaluj i włącz. Z przodu da ci takie wyjście:
Rozwiń wyniki i sprawdź duże czerwone bloki. To są rzeczywiste czasy, których przetworzenie wymagało pewnej części kodu. Zwróć uwagę na moduły innych firm, które zajmują dużo czasu lub pamięci.
Kolejnym doskonałym narzędziem jest Czarny ogień . Ponieważ Aoe_Profiler jest modułem w Magento, nie pokazuje podstawowych procesów php i może ulec awarii w dużych instalacjach z dużą ilością modułów. Czarny ogień działa na serwerze. Z hackatonem ustawiliśmy Vagrant box z czarnym ogniem, którego możesz użyć. Po prostu umieść tam swój projekt i uruchom go. Sprawdź witrynę Black Fire, aby uzyskać więcej informacji, jak z niej korzystać.
Ostatni jest prawdopodobnie moim ulubionym: New Relic .
Niestety jest to usługa płatna, chociaż zapewnia bezpłatną wersję próbną dla kont pro. Po zainstalowaniu go na serwerze i podłączeniu profilu poczekaj kilka godzin na wejście danych. Upewnij się, że w sklepie jest trochę ruchu.
New Relic ma również post na blogu na temat debugowania Magento, który mogę polecić. Sprawdź także moduł ProxiBlue New Relic , aby uzyskać dodatkowe dane Magento w New Relic.
Zasadniczo pokaże to wszystkie wyżej opisane funkcje, takie jak wolne zapytania, procesy w PHP itp. I wyświetli je w postaci łatwych wykresów i tabel. To powinno dać ci świetny wgląd w problem związany z twoją instalacją.
A teraz, gdy już wiesz, co powoduje niską wydajność, możesz przejść do jej rozwiązania. Sprawdź fora takie jak ten lub Google pod kątem wolnej części lub modułu Magento. Wiele problemów jest dobrze znanych, a inni już to rozwiązali. Lub, jeśli nie możesz znaleźć rozwiązania, opublikuj tutaj swoje pytanie i dołącz swoje ustalenia do pytania
Optymalizacja prędkości strony w Magento to bardzo obszerny temat. To jest jeden link, który może ci pomóc,
http://www.gxjansen.com/blog/101-ways-to-speed-up-your-magento-e-commerce-website/
Podsumowując,
Musisz skoncentrować się na dwóch aspektach: 1. Optymalizacja interfejsu użytkownika 2. Optymalizacja interfejsu użytkownika
Optymalizacja interfejsu użytkownika
Możesz zainstalować Fooman Speedster - http://www.magentocommerce.com/magento-connect/speedster-by-fooman.html i włączyć css, js merge
Włącz buforowanie bloków Magento w admin.
Włącz kompresję Gzip
Optymalizacja zaplecza
Możesz skonfigurować Lakier do pełnego buforowania stron
Włącz komplikację w backend.
Włącz płaską strukturę dla katalogu (kategorii i produktów)
Oto kilka małych sztuczek, które pomogły mi przyspieszyć twoją stronę, które możesz spróbować:
Odłóż ładowanie obrazu, dodając go do pliku /template/page/html/head.phtml
<script>
function init() {
var imgDefer = document.getElementsByTagName('img');
for (var i=0; i<imgDefer.length; i++) {
if(imgDefer[i].getAttribute('data-src')) {
imgDefer[i].setAttribute('src',imgDefer[i].getAttribute('data-src'));
} } }
window.onload = init;
</script>
Następnie /template/catalog/product/list.phtml
zmień linki do obrazów w ten sposób:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AQQATUqB0EhKgAAAAxJREFUCNdj+P//PwAF/gL+3MxZ5wAAAABJRU5ErkJggg==" data-src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(135); ?>" width="135" height="135" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" /></a>
Innym jest „Pre Gzip” wszystkich swoich javascripts i plików CSS, a następnie dodać to do swojego .htaccess
.
<ifModule mod_headers.c>
##### serve pre gziped files #####
# Rules to correctly serve gzip compressed CSS and JS files.
# Requires both mod_rewrite and mod_headers to be enabled.
# Serve gzip compressed CSS files if they exist and the client accepts gzip.
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}\.gz -s
RewriteRule ^(.*)\.css $1\.css\.gz [L,QSA]
# Serve gzip compressed JS files if they exist and the client accepts gzip.
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}\.gz -s
RewriteRule ^(.*)\.js $1\.js\.gz [L,QSA]
# Serve correct content types, and prevent mod_deflate double gzip.
RewriteRule \.css\.gz$ - [T=text/css,E=no-gzip:1]
RewriteRule \.js\.gz$ - [T=text/javascript,E=no-gzip:1]
</IfModule>
Magento to świetne środowisko e-commerce. Ma mnóstwo funkcji i naprawdę można zbudować skalowalną platformę handlu elektronicznego. Użyłem Magento w moim najnowszym projekcie i zmierzyłem się z tym problemem prędkości. Po przeprowadzeniu badań i modyfikacji naprawdę przyspieszyłem swoją stronę.
Optymalizacja serwera
Ustawienia Magento
Zainstaluj Redis Cache, APC Opcode i pełne buforowanie strony - Zainstaluj PHP Accelerators - Zainstaluj Redis cache dla backendu i buforowania sesji - Zainstaluj Lesti FPC
Optymalizacja obrazu i YSlow - średnio 56 procent masy strony składa się z obrazów. Optymalizacja zdjęć produktów może znacznie zwiększyć szybkość stron, ponieważ skraca to czas ich pobierania. - Zeskanuj swoją stronę za pomocą gtmetrix lub Pingdom i postępuj zgodnie z ich sugestiami dotyczącymi optymalizacji.
Użyj CDN
Możesz przeczytać szczegółowe informacje na ten temat na mojej stronie internetowej: http://www.ranjeetvimal.com/tips-to-speed-up-magento-1-9-performance/
jeśli korzystasz ze współdzielonego środowiska hostingowego, bardzo trudno jest osiągnąć dobrą prędkość, ponieważ nie masz pełnej kontroli nad serwerem, a zasób jest używany przez kilka innych stron internetowych, ale jeśli jesteś na serwerze dedykowanym i masz pełny dostęp administratora, spróbuj pamięci podręcznej lakieru .
inne rzeczy, które możesz zrobić -
1. Połącz pliki JS i CSS
Magento admin -> System Configuration -> Developer -> Under “Javascript Settings”, change “Merge Javascript Files” to YES.
Magento admin -> System Configuration -> Developer -> Under “CSS Settings”, change “Merge CSS Files” to YES
2.Włącz kompresję wyjściową, wygasa nagłówki i wyłącz znaczniki ETag w pliku .htaccess, zobacz /programming//a/14745165/3114253
Użyj CDN, jeśli to możliwe
Użyj funkcji kompilacji Magento. Podobno daje ci wzrost wydajności o 25% -50%: System> Konfiguracja. > Narzędzia> Kompilacja.
Pokaż mniejszy nr produktu na stronie listy produktów.
Włącz płaski katalog.
W interfejsie administratora Magento przejdź do System> Konfiguracja> Katalog. W obszarze Frontend zmień opcję Użyj płaskiej kategorii katalogu na TAK. W razie potrzeby w obszarze Frontend zmień opcję Użyj płaskiego katalogu na TAK. Wyczyść pamięć podręczną.
Jeśli spróbujesz przyspieszyć swój frontend:
Backend:
Aby zwiększyć szybkość witryny Magento, możesz najpierw zeskanować ją za pomocą www.gtmetrix.com lub Google Page Speed Insights:
wtedy możesz zdecydować, co można zrobić. W większości przypadków sprowadza się to do:
Wykonano z 34 sposobów na przyspieszenie M1 i M2