Het hele web staat er vol mee, blogs met tips&tricks om de performance van Magento wat op te krikken. Het is duidelijk dat er bij Magento flinke snelheidswinst te behalen valt, zowel door de beste hosting te kiezen als middels optimalisatie. Waarom dit zo belangrijk is, kunnen we niet vaak genoeg herhalen. Een hogere snelheid draagt bij aan een hogere Google ranking (wat resulteert in meer bezoekers) en bezoekers surfen bij een trage webshop naar de concurrent. Dat wil je natuurlijk voorkomen!

Toch zijn er weinig performance optimalisatie blogs terug te vinden waarin tussen de tips&tricks afgeraden wordt ionCube encoded Magento modules te gebruiken.  

Gebruik geen ionCube encoded Magento modules

IonCube

ionCube

Eerder schreven we al een blog over waarom we afraden ionCube encoded Magento modules te gebruiken. Deze hebben namelijk een negatieve invloed op de performance van je Magento shop. Wanneer een klant een Magento shop bezoekt, opent de webserver extreem veel bestanden. Met het gebruik van ionCube moeten deze bestanden 2 keer worden geopend, wat voor een verdubbeling van de laadtijd kan zorgen.

Klein experiment

OPCode Caching

OPCode Caching

We wisten dat op het moment dat ionCube ingeladen is, de OPCode cache (APC) niet optimaal werkt. Daarom zijn we een klein experiment gestart om eens te controleren of bij het gebruik van Zend encoded modules, de concurrent van IONcube, dezelfde problemen optreden. Hiervoor hebben we op een eigen Dedicated Appserver even gespeeld met Zend en de resultaten vergeleken met IonCube.
Bij het gebruik van IonCube zagen we dat ondanks dat de machinecode van PHP files in het werkgeheugen geladen werd, alsnog PHP files opnieuw ingeladen werden. In ons kleinschalig experiment is gebleken dat dit probleem bij Zend niet speelt. Dit zegt natuurlijk nog niet meteen iets over de performance van Zend ten opzichte van IonCube, maar Zend zorgt in ieder geval voor minder disk I/O. Disk I/O is de tijd die het kost om bestanden van en naar de harde schijf te schrijven/ halen.

Performance advies

Performance optimalisaties

Performance optimalisaties

Toch signaleren onze systemen nog steeds het gebruik van IonCube onder onze klanten. Niet zo heel gek natuurlijk. Soms heb je voor je Magento shop een bepaalde module nodig en is die alleen IONcube encoded aan te schaffen.

Indien je geen gebruik maakt van een OPCode cache zoals APC zal het gebruik van IonCube gelukkig een minder groot verschil uitmaken op de laadsnelheid van je shop. Maar gebruik je wel wel OPCode cache, zoals alle Dedicated Appservergebruikers doen, wees dan bewust van de enorme extra load die encoded modules met zich meebrengen.

Ons advies is dan ook: zoek waar mogelijk naar alternatieven die niet IONcube encoded zijn of vraag de bouwer om een non-encoded versie van module. Gebruik je geen IONcube maar heb je in het verleden de IONcube loader aan gezet het service panel? Zet het dan uit. Zelfs als je geen IONcube modules laadt maar wel de IONcube loader aan hebt staan treedt de performance degradatie op.

Uit ons kleine experiment blijkt dan wel dat Zend een voor een minder hoge disk I/O zorgt, maar ook het verwerken van Zend encoded code is alsnog zwaarder dan unencoded PHP. Dus als je echt om performance geeft, gebruik je helemaal geen encrypted code.

 

Scan je eigen Magento shop op veiligheidslekken