J'ai récemment commencé à développer sur magento2 de nouvelles extensions ou personnalisations, et ma première impression a été un cauchemar. Je dois attendre environ 20-30s pour chaque changement que je fais? vraiment?
Je parle du mode de développement , je sais qu'en production avec le cache activé et d'autres choses, le site Web peut être fluide. Mais lorsque je travaille avec un problème d'extension ou de mise en page, je dois supprimer des fichiers statiques, vider le cache, etc.
Ma question est, comment travaillez-vous tous les développeurs M2? parce que je ne pense pas qu'il faille attendre 20 à 30 pour rafraîchir la page ...
Mon environnement: mon PC est "bon" i5 avec 8 Go de RAM. Je dois travailler avec Windows, donc j'utilise vagrant:
- Utilisation des 4 cœurs CPU
- Utilisez 5120 Mo de RAM
- Ubuntu / trusty64 - Ubuntu 14.04
- Version PHP 7.0.12-1 + deb.sury.org ~ trusty + 1
- MariaDB - 10.1.18-MariaDB-1 ~ fidèle
- Magento 2.1.2 est installé uniquement avec sampledata (plus aucun module n'est installé)
- (Demandez-moi si vous voulez en savoir plus)
Que se passe-t-il exactement? Habituellement, M2 répond bien, lentement mais bien, environ 5 à 10 secondes pour charger les pages, mais parfois (plus souvent que parfois), il reste bloqué pour toujours! est parfois la première page et parfois les fichiers css, js, html mais toujours le problème est avec TTFB.
J'ai également vu un problème lors de la configuration de l'assistant ... avec angular.js, ces fichiers durent éternellement ...
Ces 2 images concernent la navigation dans l'assistant de configuration.
Puis un autre naviguant sur le catalogue frontal:
Qu'est-ce que je demande exactement? Est-ce normal? vous travaillez avec ce timing? J'ai commenté cela avec certains collègues et nous ne croyons tout simplement pas, je dois travailler comme ça? Je désespère parfois d'attendre tout le temps en regardant l'écran ...
Si quelqu'un me demande de lui montrer un test, comme créer un nouveau produit ou quelque chose comme ça, il flippe juste ... Créer une nouvelle commande, remplir les champs et chaque champ exécute un js qui dure 5-6s ...
Je ne sais pas mais je me sens tellement mal de développer avec ce genre de choses ...
la source
Réponses:
J'ai tout essayé et la seule chose qui fonctionne est la machine virtuelle qui fournit le bitnami. https://bitnami.com/stack/magento/virtual-machine
Sérieusement, je ne sais pas ce qui a ce vm, mais va très vite. J'ai essayé de créer ma machine virtuelle à l'aide d'une nouvelle installation d'Ubuntu, CentOS, etc. Mais cela ne fonctionne pas aussi bien comme cette machine virtuelle.
la source
désactiver la fusion et la réduction CSS / JS:
Consultez également ce guide sur la façon d'améliorer les performances de Magento 2.
la source
J'ai trouvé que le mode développeur désactivait tout - ce qui était exagéré. Il y a certains aspects que je souhaite mettre en cache, comme la traduction. Heureusement,
env.php
vous pouvez toujours définir les caches à utiliser spécifiquement:C'est ce qui précède que j'ai choisi de mettre en cache lors du développement sur Checkout, car c'était fortement frontal. J'ai choisi de ne pas mettre en cache la disposition; Blocs et pleine page pour voir mes changements.
la source
Suggestions de Magento postées après réponse à cette question. Lire d'autres réponses Je pense que cette information pourrait être un ajout utile
http://devdocs.magento.com/guides/v2.2/extension-dev-guide/build/optimal-dev-environment.html
Configuration optimale
Voici une liste des optimisations que vous pouvez effectuer sur votre machine de développement locale
la source
Activez votre cache.
Accédez à
<your magento 2 directory>/bin
et exécutez cette commandemagento cache:enable
.Nettoyez le cache lorsque vous modifiez le frontend pour voir ce que vous avez modifié.
Accédez à
<your magento 2 directory>/bin
et exécutez cette commandemagento cache:clean
.Ma référence
Je suis également nouveau sur magento 2. J'espère que quelqu'un a un moyen de rendre magento 2 rapide même lorsque le cache est désactivé.
la source
Ma configuration sur Ubuntu 16.10 pour le développement frontal pour les modifications MOINS :
Définir le mode développeur:
php bin/magento deploy:mode:set developer
Activez tous les caches:
php bin / magento c: activer
Workflow de développement frontal défini sur la compilation côté serveur
Après toute modification dans moins de fichiers exécutés
grognement propre
(La dernière fois que je menage pour commencer - montre grognement avec navigation en direct et son grand)
la source
Je veux juste partager mon expérience personnelle.La solution que j'ai trouvée était d'installer Xampp avec php version 7.0 car Magento n'est pas entièrement compatible avec la version supérieure de Php. J'ai essayé Bitnami Image répertorié dans la réponse mais ne fonctionne pas car je m'attendais à Xampp 7.0.23 Lien de téléchargement
la source
Augmenter PHP
memory_limit
dans le fichier php.ini fera une bonne différence. Cependant, cela ne le rendra pas très très lisse (même si cela fera gagner du temps).La valeur par défaut est 512M. Sur ma machine locale, je l'ai réglé sur "-1" (illimité) et cela donne un meilleur temps de chargement.
La valeur recommandée est memory_limit = 2G mentionnée ici .
Magento est lourd et a besoin de matériel haute performance comme SSD pour être fluide :(
la source
memory_limit
n'a aucun rapport avec les performances. C'est évident d'après le nom de la directive.Si vous rencontrez des problèmes de configuration sur une boîte Vagrant, ce sera presque certainement la façon dont vos dossiers seront partagés. Ils doivent être partagés sur NFS.
Après avoir joué avec de nombreuses boîtes différentes, j'ai réalisé que bien que j'aie défini NFS dans la configuration, cela ne fonctionnait pas réellement et le système de partage VirtualBox standard prenait le relais.
Je suis revenu à l'essentiel et j'ai installé une simple boîte LEMP et installé ce plugin:
https://github.com/Learnosity/vagrant-nfs_guest
Confirmé que NFS fonctionnait et que tout allait bien.
la source
Des choses qui peuvent rendre votre configuration Magento 2 rapide sur votre serveur local ou en général sur n'importe quel environnement de serveur.
Désormais, dans l'environnement de développement, videz uniquement le cache nécessaire au lieu de vider tout le cache pour empêcher la reconstruction complète du cache.
la source
La principale raison pour laquelle magento2 est lent en mode développeur est liée à des milliers de fichiers statiques et compilés générés à la volée.
Il existe 3 solutions pour cela:
Montez tout le répertoire avec NFS (le SSD est toujours obligatoire).
Montez uniquement le répertoire de l'application (quel que soit votre matériel, cela fonctionnera correctement), mais vous perdez l'accès au répertoire / vendor sur votre machine hôte.
Montez le projet entier avec rsync et excluez les répertoires où les fichiers sont générés (pub / statique, généré / code etc ...).
J'ai fait ce travail, essayez-le: https://github.com/zepgram/magento2-fast-vm/
la source