Virtual box, Docker, eller webbserver direkt

Jag har problem med hastigheten på en site jag utvecklar på jobbet. Vi kör Magento 2.2.4 i utvecklingsläge i Virtual box.

Det tar 10 till 15 minuter att ladda in kassan. Med en dedicerad controller tar det 30 till 60 sekunder innan den svarar. Det borde ta 1 till 2 sekunder.

Mer resurser

Är datorn på jobbet klen? Jag testade med en 4-10 gånger starkare dator och gav Virtual box mycket mer cores och minne. Det var lika långsamt.

Webbserver direkt

Testade siten direkt på en LAMP. Det vart marginellt bättre men fortfarande alldeles för långsamt.

Upptäckte att 404 saknade filer tar en väldig tid. En saknad bild får magento att starta. Där behövs htaccess regler för bilder så den går vidare.

Jag kör inte varnish lokalt. Rätt inställd kan den hjälpa även när man utvecklar. Jag tycker Varnish är svår att få rätt.

Xdebug är igång jämt på min dator. Den kan inte lätt stängas av. Xdebug är programmerarens vän, men när den inte behövs blir all exekvering segare än nödvändigt.

Som backendutvecklare med lokal utvecklingsmiljö så tar jag hellre en request med 13 mb javascript än 313 request med små javascript. Magento använder ett js bobliotekt som gillar att prata med servern. Det tar oändligt med tid. Slå på js merge om du kan ha det så.

Docker

Docker är i stort sett lika snabb som direkt webbserver. Har man en mycket kunnig person som kan konfigurera Docker, som vi har på jobbet, då kan docker göra otroliga saker. Du kan stänga av xdebug tillfälligt och många andra prestandafinesser. Samnantaget är docker bästa alternativet.

Magento 2

Magento 2 är ett stort system skrivet i Php. Det finns en mängd med trix inbyggt för att få de svagaste delarna att gå lite snabbare. Trixen i sig gör plattformen mer invecklad. Du måste slå av några trix för att kunna utveckla. Och då syns hur långsamt systemet är.

Det är inte valet av php som är problemet. Istället är det valet av lösningar som är slöa.

Magento kommer kanske bli snabb i framtiden på bekostnad av den kod vi skriver. Den blir omodern och slutar fungera.

CharZam