IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Mon site sous symfony est très long à charger


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2019
    Messages : 9
    Par défaut Mon site sous symfony est très long à charger
    Bonjour à tous

    Voilà mon site web sous symfony est très lent à charger (hébergement OVH mutualisé). J'ai essayé sur différents ordinateurs et différentes connections. Quand je continue la navigation, les temps de chargement deviennent plus court. Mais quand je me connecte à son adresse, le chargement est très long !

    J'ai effectué des copies d'écrans d'éléments qui pourraient être utiles, mais je n'arrive pas à les interpréter pour me sortir du problème :

    Nom : DevBar1.png
Affichages : 1290
Taille : 36,7 Ko

    Nom : DevBar2.png
Affichages : 1241
Taille : 7,5 Ko

    Nom : Execution Timeline.png
Affichages : 1278
Taille : 24,1 Ko

    Nom : Cache.png
Affichages : 1235
Taille : 26,8 Ko

    Nom : cache warning.png
Affichages : 1451
Taille : 14,9 Ko


    Si quelqu'un à une idée je le remercie d'avance

    Laurent

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Par défaut
    bonjour,

    la toolbar montre qu'il y a 19 requêtes SQL qui s'exécutent en 23.71ms (19 in 23.71ms ). Et ces 19 requêtes sont susceptibles d'évoluer à mesure que les données de la BD augmentent.
    19 requêtes pour une seule page c'est beaucoup.
    Tu as probablement des requêtes SQL supplémentaires générées, lesquelles requêtes sont liées au mode de chargement de tes associations en l’occurrence le mode fetch="LAZY".

    Sur la toolbar, clique sur 19 in 23.71ms , ensuite sur Group similar statements, tu verras les requêtes SQL s'afficher ainsi que le nombre de fois où elles sont appelées( COUNT ). Si le COUNT de chaque requête est supérieur à 1 alors tu as un problème de LAZY loading et dans ce cas tu peux changer le mode de chargement de tes associations en EAGER ce qui veut dire récupère moi l'entité que je veux afficher ainsi que l'entité jointe en faisant qu'une seule requête avec jointure(voir l'exemple)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    //Article.php
    /**
    * @ORM\ManyToOne(targetEntity=Category::class, inversedBy="articles", fetch="EAGER")
    */
    private $category;
    Mais tu peux aussi faire des requêtes DQL ou QueryBuilder à place de faire find, findBy ... avec DQL ou QueryBuilder, le mode de chargement n'a plus aucune importance car ce n'est plus l'ORM qui génère les requêtes.

    Après si entre 2 appels, ta page ne change pas souvent il est possible de mettre en cache les données issues de la BD. Ainsi tu supprimes les appels inutiles à la BD. Mais le cache n'est bénéfique que si le code est déjà optimisé.

  3. #3
    Membre habitué
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2019
    Messages : 9
    Par défaut
    Effectivement j'ai certaines requêtes qui sont effectuées plus de cinq fois. Je vais donc me pencher sur le tutoriel que tu m'as indiqué.

    Parfois le site se charge néanmoins à une vitesse raisonnable, je ne comprends pas l'irrégularité.

    Mais dans tous les cas un très grand merci pour ton message détaillé et pédagogique.

  4. #4
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2013
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2013
    Messages : 71
    Par défaut
    Bonjour,

    Serait-il possible d'avoir un retour après optimisation des requêtes SQL ?

    J'ai dû mal à comprendre quels mécanismes permettent de réduire le chargement d'une page de 33 secondes en optimisant une fonctionnalité qui prend 23 ms.

  5. #5
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Commence par désactiver xdebug qui doit faire bien du mal en terme de performance.

    Se concentrer sur les requête sql n'a pas de sens pour le moment puisque le temps qu'elle prennent est négligeable.

    Si tu peux essai d'utiliser une IP pour l'adresse de ta base de données pour éviter un lookup dns qui parfois peut être longue (genre 127.0.0.1 au lieu de localhost).

    Est ce que tu as configuré tous les caches nécessaire ? Particulièrement sur un hébéergement mutualisé c'est important de minimiser autant que possible les accès disques et cpu
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre habitué
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2019
    Messages : 9
    Par défaut
    Bonjour à tous, merci à Samche200 et grunk pour votre follow-up, désolé pour le délai je n'avais connaissance de vos messages.

    Je ne suis pas un codeur expérimenté alors mes commentaires sont à prendre avec des pincettes.

    Citation Envoyé par samche2000 Voir le message
    Serait-il possible d'avoir un retour après optimisation des requêtes SQL ?
    Il semblerait que l'optimisation des requêtes sql n'apporte pas de gain significatif en terme de temps de chargement (toutefois merci à armel18 de m'avoir sensibilisé à ce problème qui s'empirerait à mesure d'insertions dans la db).

    Citation Envoyé par grunk Voir le message
    Commence par désactiver xdebug qui doit faire bien du mal en terme de performance.
    Si j'en crois la Debug Toolbar du remote, xdebug est désactivé (toutes les copies d'écrans font référence au remote).

    Citation Envoyé par grunk Voir le message
    Si tu peux essai d'utiliser une IP pour l'adresse de ta base de données pour éviter un lookup dns qui parfois peut être longue (genre 127.0.0.1 au lieu de localhost).
    Sur le remote l'adresse de ma base de donnée suis le pattern suivant : p*a550.mysql.db:3306 (correspondrait-il à ta recommandation ?)

    Citation Envoyé par grunk Voir le message
    Est ce que tu as configuré tous les caches nécessaire ? Particulièrement sur un hébéergement mutualisé c'est important de minimiser autant que possible les accès disques et cpu
    Non je n'ai aucune compétence dans ce domaine, si tu as un tuto ou une doc à me conseiller, je suis très motivé pour essayer.

    Sur ce sujet il y a une question qui me taraude depuis plusieurs semaines. Sur le remote, dès que je lance cache:clear, j'obtiens ! [NOTE] For better performances, you should move the cache and log directories to a non-shared folder of the VM. Malgré des recherches je ne comprends pas ce que signifie "non-shared folder of the VM". Dossier non partagé du gestionnaire virtuel ??? Si quelqu'un peu m'expliquer en termes simples ce que cela signifie :-) ?

    Merci à tous

    Laurent

    ps : voici l'adresse du dépôt Github : https://github.com/LoloForThePOP/meta-project

Discussions similaires

  1. [Wamp] acceeder a mon site sous ww/monsite par une ip
    Par ludo007 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 07/05/2009, 09h59
  2. Tester mon site sous linux et problemes de polices
    Par lysandre dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 20/02/2009, 15h07
  3. comment utiliser mon site sous Xampp
    Par jeha dans le forum Debian
    Réponses: 2
    Dernier message: 01/01/2007, 18h28
  4. Réponses: 3
    Dernier message: 14/11/2006, 16h13
  5. Mon site sous FireFox
    Par Auvergnator dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 27/09/2006, 12h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo