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

  1. #1
    Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    novembre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : novembre 2019
    Messages : 3
    Points : 2
    Points
    2
    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 : 74
Taille : 36,7 Ko

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

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

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

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


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

    Laurent

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : août 2012
    Messages : 604
    Points : 1 085
    Points
    1 085
    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".

    Ce tuto explique le LAZY Loading ce qui est probablement lié à tes problèmes de performance.

    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
    Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    novembre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : novembre 2019
    Messages : 3
    Points : 2
    Points
    2
    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 régulier
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    septembre 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Santé

    Informations forums :
    Inscription : septembre 2013
    Messages : 61
    Points : 70
    Points
    70
    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
    Architecte Web / Android
    Inscrit en
    août 2003
    Messages
    6 269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Architecte Web / Android
    Secteur : Industrie

    Informations forums :
    Inscription : août 2003
    Messages : 6 269
    Points : 18 018
    Points
    18 018
    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

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