Niedawno zacząłem opracowywać nowe rozszerzenia lub modyfikacje magento2, a moje pierwsze wrażenie było koszmarem. Na każdą zmianę, którą wprowadzę, muszę czekać około 20-30 sekund? naprawdę?
Mówię o trybie programowania , wiem, że w produkcji z włączoną pamięcią podręczną i innymi rzeczami strona internetowa może być płynna. Ale kiedy pracuję z problemem rozszerzenia lub układu, muszę usuwać pliki statyczne, czyścić pamięć podręczną itp.
Moje pytanie brzmi: jak wszyscy programiści M2 pracują? ponieważ nie wierzę, że musisz odczekać 20-30 lat na odświeżenie strony ...
Moje środowisko: mój komputer jest „dobry” i5 z 8 GB pamięci RAM. Muszę pracować z systemem Windows, więc używam włóczęgi:
- Wykorzystanie wszystkich 4 rdzeni procesora
- Użyj 5120 MB pamięci RAM
- Ubuntu / trusty64 - Ubuntu 14.04
- Wersja PHP 7.0.12-1 + deb.sury.org ~ zaufany + 1
- MariaDB - 10.1.18-MariaDB-1 ~ zaufany
- Magento 2.1.2 jest instalowany tylko z próbkowanymi danymi (nie instaluje się więcej modułów)
- (Zapytaj mnie, czy chcesz wiedzieć coś więcej)
Co się dokładnie dzieje? Zwykle M2 reaguje dobrze, powoli, ale dobrze, około 5-10 sekund, aby załadować strony, ale czasami (częściej niż czasami) po prostu blokuje się na zawsze! czasami jest to pierwsza strona, a czasem pliki css, js, html, ale zawsze problem dotyczy TTFB.
Widziałem też problem z kreatorem instalacji ... z angular.js te pliki trwają wiecznie ...
Te 2 zdjęcia dotyczą poruszania się po kreatorze konfiguracji.
Następnie kolejna nawigacja w katalogu frontend:
O co dokładnie pytam? Czy to normalne? pracujesz z tym czasem? Skomentowałem to z kilkoma kolegami i po prostu nie wierzymy, że muszę tak pracować? Czasami rozpaczam, że cały czas czekam na ekran ...
Jeśli ktoś poprosi mnie o pokazanie mu testu, takiego jak stworzenie nowego produktu lub coś w tym stylu, on po prostu wariuje ... Utworzenie nowego zamówienia, wypełnienie pól i każde pole wykonuje js trwający 5-6 sekund ...
Nie wiem, ale czuję się tak źle z tymi rzeczami ...
źródło
Odpowiedzi:
Próbowałem wszystkiego i jedyne, co działa, to maszyna wirtualna, która zapewnia bitnami. https://bitnami.com/stack/magento/virtual-machine
Poważnie, nie wiem co ma ten vm, ale idzie bardzo szybko. Próbowałem utworzyć moją maszynę wirtualną przy użyciu nowej instalacji Ubuntu, CentOS itp. Ale nie działa tak dobrze, jak ta maszyna wirtualna.
źródło
wyłącz scalanie i minimalizowanie CSS / JS:
Zobacz także ten przewodnik, jak poprawić wydajność Magento 2.
źródło
Odkryłem, że tryb programisty wyłącza wszystko - co było przesadą. Są pewne aspekty, które chcę buforować, takie jak tłumaczenie. Na szczęście
env.php
możesz nadal ustawić, które pamięci podręczne mają być używane:To było powyższe, które postanowiłem buforować podczas opracowywania w Checkout, ponieważ był to w dużej mierze front-end. Zdecydowałem się nie buforować układu; Bloki i pełna strona, aby zobaczyć moje zmiany.
źródło
Sugestie Magento opublikowane po udzieleniu odpowiedzi na to pytanie. Czytanie innych odpowiedzi Myślę, że ta informacja może być pomocnym dodatkiem
http://devdocs.magento.com/guides/v2.2/extension-dev-guide/build/optimal-dev-environment.html
Optymalna konfiguracja
Poniżej znajduje się lista optymalizacji, które można wykonać na lokalnym komputerze programistycznym
źródło
Włącz pamięć podręczną.
Idź do
<your magento 2 directory>/bin
i uruchom to poleceniemagento cache:enable
.Wyczyść pamięć podręczną podczas edycji interfejsu użytkownika, aby zobaczyć, co edytowałeś.
Idź do
<your magento 2 directory>/bin
i uruchom to poleceniemagento cache:clean
.Moje referencje
Też jestem nowy w Magento 2. Mam nadzieję, że ktoś ma sposób na szybkie uczynienie Magento 2, nawet gdy pamięć podręczna jest wyłączona.
źródło
Moja instalacja w systemie Ubuntu 16.10 do programowania frontendów dla MNIEJ edycji :
Ustaw tryb programisty:
php bin/magento deploy:mode:set developer
Włącz wszystkie pamięci podręczne:
php bin / magento c: włącz
Fronted Development Workflow ustawiony na kompilację po stronie serwera
Po wprowadzeniu jakichkolwiek zmian w mniejszej liczbie plików
chrząkać czysto
(Ostatnim razem, gdy udaje mi się zacząć - chrząkać zegarek z przeglądaniem na żywo i jest świetny)
źródło
Chcę tylko podzielić się moim osobistym doświadczeniem. Rozwiązaniem, które wymyśliłem, było zainstalowanie Xampp z php w wersji 7.0, ponieważ Magento nie jest w pełni kompatybilny z wyższą wersją Php. Próbowałem Bitnami Image wymieniony w odpowiedzi, ale nie działa, ponieważ spodziewałem się Xampp 7.0.23 Download Link
źródło
Zwiększenie PHP
memory_limit
w pliku php.ini zrobi dobrą różnicę. Jednak nie sprawi, że będzie bardzo gładka (chociaż pozwoli zaoszczędzić czas).Wartość domyślna to 512 mln. Na mojej lokalnej maszynie ustawiłem to na „-1” (nieograniczone) i daje to lepszy czas ładowania.
Zalecaną wartością jest wspomniana tutaj memory_limit = 2G .
Magento jest ciężki i potrzebuje płynnego sprzętu o wysokiej wydajności, takiego jak SSD :(
źródło
memory_limit
nie ma żadnego związku z wydajnością. Jest to oczywiste z nazwy dyrektywy.Jeśli masz problemy z konfiguracją Vagrant, prawie na pewno będzie to, w jaki sposób Twoje foldery są udostępniane. Powinny być udostępniane przez NFS.
Po zadziałaniu z wieloma różnymi urządzeniami, zdałem sobie sprawę, że chociaż ustawiłem NFS w konfiguracji, to tak naprawdę nie działało i przejmował go standardowy system udostępniania VirtualBox.
Wróciłem do podstaw, skonfigurowałem proste pudełko LEMP i zainstalowałem tę wtyczkę:
https://github.com/Learnosity/vagrant-nfs_guest
Potwierdzony NFS działał i wszystko było dobrze.
źródło
Rzeczy, które mogą przyspieszyć konfigurację Magento 2 na lokalnym serwerze lub ogólnie na dowolnym serwerze.
Teraz, gdy w środowisku programistycznym opróżniasz tylko potrzebną pamięć podręczną zamiast opróżniania całej pamięci podręcznej, aby zapobiec całej odbudowie pamięci podręcznej.
źródło
Główny powód, dla którego magento2 działa wolno w trybie programisty, jest związany z tysiącem plików statycznych i skompilowanych generowanych w locie.
Istnieją na to 3 rozwiązania:
Zamontuj cały katalog za pomocą NFS (SSD jest nadal obowiązkowy).
Zamontuj tylko katalog aplikacji (bez względu na to, jaki sprzęt będzie działał poprawnie), ale stracisz dostęp do katalogu / vendor na komputerze-hoście.
Zamontuj cały projekt za pomocą rsync i wyklucz katalogi, w których generowane są pliki (pub / static, wygenerowany / kod itp.).
Zrobiłem tę pracę, spróbuj: https://github.com/zepgram/magento2-fast-vm/
źródło