-
optimisation de symfony
Bonjour,
J'aimerai savoir comment optimiser un peu symfony, car la première fois que je visite le backend (générer avec l'admin generator, et sécurisé avec sfDoctrineGuardPlugin ) je mets dans les 5/6 secondes voir des fois beaucoup plus en local (bon je sais le pc que j'utilise est un peu lent mais quand même c'est énorme), et les fois d'après je mets en moyenne 2 secondes, c'est aussi beaucoup j'aimerai descendre grandement ce temps. J'ai quelques screens :
premiere appel à materiel :
http://nsa25.casimages.com/img/2011/...3926444673.jpg
deuxieme fois : (c'est plus cours mais c'est long quand même)
http://nsa26.casimages.com/img/2011/...4054840127.jpg
deuxieme appel à fiche : (c'est long aussi)
http://nsa25.casimages.com/img/2011/...4037828004.jpg
Je ne peux pas vraiment mettre en cache vu que c'est mes données affichées sous forme de tableau avec des filtres applicables (je l'ai fait pour les formulaires d'entrée et ça réduit beaucoup le temps (dans les 500 ms au lieu de 2sec)). Ou alors comment mettre en cache le tableau (et le remettre à jour pour chaque modification) mais pas les filtres ?
J'ai vu que configuration est appelé 12 fois (voir plus) comment le réduire à 1?
J'ai deja réduit le nombre de requête avec la technique donnée dans jobeet
-
Le problème est que tu te bases sur les résultats obtenus par la barre de debug. Donc que tu es en mode dev.
Hors, en mode dev, la première chose qui est faîte est un cc... Donc pour chaque affichage, tu recrées le cache, ce qui est très pénalisant.
De plus, je te soupçonne de travailler sur ton wamp en local, qui est largement plus lent qu'un serveur linux de base avec une debian sans interface graphique.
Pour information, des form qui s'affichent chez moi en local en 6s en mode dev, passent, sur un serveur de test (linux debian sur une vraie vielle machine) à 600ml seconde et, a plus ou moins 300 ml hors dev. soit un gain de 2.000% ce qui n'est pas négligeable.
-
ah effectivement ça me rassure un peu :p
effectivement je suis sous wamp.
Par contre pour ce problème d'appel de configuration 12 fois, y'a pas moyen de le faire un peu moins? ça fait deja un peu de temps de gagné.
J'ai vu aussi une histoire de ARRAY_HYDRATE ou un truc dans le genre il y a un petit moment mais j'ai pas retenu les liens et je sais plus exactement ce que ça fait :/
-
De tête, la configuration est le parse des différents fichiers de configuration (yml). Il n'a lieu qu'une fois par fichier et jusqu'au CC suivant :) (qui a lieu à chaque appel de page en debug :aie: )
L'hydratation est une méthode lié à doctrine qui permet de récupérer des enregistrement de la base de donnée en un format exploitable par php. En gros, tu as trois type, des objets (lourd et lent, mais indispensable pour modifier et enregistrer)(si tu as moins de 10 enregistrements il n'y a pas de différence avec les autres) et deux types de tableau un avec un moteur doctrine et l'autre un bête array (Niveau performance ils sont très proche, le deuxième est un peu plus rapide, sensible sur de gros volume >1000 enregistrements). En gros, si tu as une liste à afficher de plus de 20, tu as intérêt à passer par un tableau plutôt que par les objets.
D'un autre côté un accélérateur style APC sera lui, largement plus performant au niveau de ton serveur que ces petites adaptations.
Reste les possibilités de cache. Possible à mettre en œuvre avec les auto-généré (jamais utilisé). Et j'ai des doutes sur la pertinence (avec les filtre ???).
-
ok merci beaucoup pour les renseignements :)