|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre confirmé
![]() |
Bonjour,
Voila j'ai un site fonctionnel, mais le probleme c'est qu'il est lent à charger. On m'a dis que cela venait de la qualité de mon code, ce qui est tout à fait possible car il a été créer a la hate (donc trop de rapidité tu la qualité). De plus il s'agit de mon 1er réel projet en php/mysql. J'aimerai donc savoir quels sont les petites astuces pour améliorer les échanges avec le serveur, le chargement par le client etc... si vous en connaissez. Une tite question aussi : Le fait d'avoir une page (de code) énorme est-il plu lent à compiler par le serveur et à charger par le client, que si le code est fractionné dans plusieurs fichiers et resoudé avec des include; ou pas? Merci |
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() |
Bonjour
ce qui ralenti le temps de chargement est souvent lié au traitement dans ton script De nombreuse boucle parcourrant des array avec des condition de sortie douteuse peut etre un probleme une requete qui n'est pas optimiser peut prendre bcp de temps d'execution Les images(si t'en as) jouer avec la qualité pour diminuer la grosseur de ces dernières Éliminer le superflux ne fait pas de tord non plus Pour ce qui est de séparer en plusieur fragement segmenter, je ne sais pas si ca optimise la vitesse, mais si c'est dans le but de la réutilisation de bout de code ca peut etre pratique sinon, ben ca devient lourd en maintenant quand il faut que tu joues dans 15 fichier différent pour trouver qu'est ce qui ne va pas
__________________
La perfection n'est pas un but, l'amélioration constante devrait l'être! La position des Développeurs de developpez avec les explications |
|
|
00
|
|
|
#3 |
|
Membre confirmé
![]() |
En faites il s'agit de ma page d'acceuil, et c vrai qu'il y a pas mal de boucle sur des array provenant de mysql, par contre je pense pas que ça vienne des conditions (cependant je le note pour plus tard), car c'est toujours while($don=mysql_fetch_array... ; et il y a au max 9 donnée par tableau.
Quesque tu appelles une requetes optimisé? (je n'est que des petits select) Pour les images yen a bcp donc je pense je peux jouer la dessus En tout cas merci pour ta réponse, si tu vois d'autres conseils a me donner je suis preneur :p A si j'ai une question : dans la boucle qu'est ce qui est mieux, extract($don) ou $don['nom_du_champ'] niveau rapidité? |
|
|
00
|
|
|
#4 | ||
|
Membre expérimenté
![]() Inscription : octobre 2006 Messages : 572 ![]() |
Tu peux gagner quelques millisecondes en utilisant les single quotes au lieu des doubles quotes dans ton code PHP.
Ton code html joue également un rôle très important. Il faut éviter de mettre le contenu d'une balise sur plusieurs lignes, du genre : Code :
Eviter les tableaux imbriqués ! Ce sont pour moi les points clés que je peux ajouter à ce qu'a dit Psylox, mais y'en a plein d'autres à mon avis !
__________________
GAMIN !!!! ![]() _______________________________________________ PHP 5.2 | Apache 2 | MySQL 5 | WinXP Pro | Mac OSX |
||
|
|
00
|
|
|
#5 | |
|
Membre émérite
![]() |
Citation:
pour ce faire penche toi sur les index et la fonction explain pour optimiser et pour ta 2e question, je ne sais pas, j'ai jamais utiliser extract($don) j'utilise plutot une forme comme while($don = mysql_fetch_array($requete)) je ne sais pas s'il y en a un plus rapide que l'autre
__________________
La perfection n'est pas un but, l'amélioration constante devrait l'être! La position des Développeurs de developpez avec les explications |
|
|
|
00
|
|
|
#6 | |
|
Membre confirmé
![]() |
Citation:
while($don=mysql_fetch_array($rq)) { extract($don); --> utilisation direct de $nom ou bien ne pas faire l'extract et utiliser la forme en tableau --> $don['nom'] .....} Ok pour les requetes optimisé ça je connais mais plus sur Oracle Ok mathieugamin, j'avais déja fais attention a ne pas étaler mes balises sur plusieurs lignes, et les images sont faites par un designeur a part Merci à vous, je vais modifier tout ça et voir si ça prends moins de temps
|
|
|
|
00
|
|
|
#7 |
![]() ![]() Marc ChappuisDéveloppeur Web Inscription : décembre 2003 Messages : 1 535 ![]() |
Salut,
Je pense qu'avant de chercher à optimiser ton code. il faut déterminer les points faibles en terme de performance. Pour ça tu peux utiliser la fonction microtime pour mesurer le temps. http://fr.php.net/manual/fr/function.microtime.php Tu places des points de mesures à plusieurs endroit de ton traitement. Une fois que tu as déterminé les points faibles, cherche à évaluer le cout de chaque optimisation. Non seulement en temps de travail immédiat, mais aussi en pensant à ce que cela peut engendrer comme problèmes dans le futur pour le maintien de l'application.
__________________
Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage ! |
|
|
00
|
|
|
#8 |
|
Membre habitué
![]() Inscription : mai 2005 Messages : 180 ![]() |
en ce qui concerne mysql, évite de faire des SELECT * mais cible plutot les champs dont tu as besoin.
Regarde également si les clés primaires de tes tables sont bien choisies, et si tu les utilisent toutes lorsque tu fais une requete. Evite de faire des redondances au niveau des requetes. Par rapidité on refait parfois une requete alors que l'on a déjà les informations demandées (pense à stocker les infos utiles et que tu utilises souvent en variable de session) Evite de dépasser les jointures doubles (2 tables). Ca devient tres long en traitement. Je pense qu'il vaut mieux faire ta jonction en faisant de la cuisine php que de faire une jointure à 3 ou 4 tables. Si tu as plein de while et de parcours de table, essaie de voir si tu ne peux pas faire 2 while en un. à savoir faire tout le traitement dont tu as besoin avec un seul parcours d'index. Je ne sais pas si les index (dans le sens sql du terme) existent sur mysql, mais si oui n'hésite pas à en créer pour les utiliser dans tes requetes.
__________________
http://www.guilde-active.fr |
|
|
00
|
|
|
#9 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Un tel topic existe déjà et est à priori bien plus complet
Optimisation de scripts PHP/MySQL ![]() Bonne lecture
|
|
|
00
|
|
|
#10 |
|
Membre expérimenté
![]() Inscription : octobre 2006 Messages : 572 ![]() |
Merci Julp,
je comptais sur ce topic pour optimiser certains de mes scripts un peu bourins, mais le tien est plutôt renversant !
__________________
GAMIN !!!! ![]() _______________________________________________ PHP 5.2 | Apache 2 | MySQL 5 | WinXP Pro | Mac OSX |
|
|
00
|
|
|
#11 |
|
Membre confirmé
![]() |
Merci pour toutes vos réponses (j'apprends, j'apprends
J'ai trouvé d'ou venai mon problème de rapidité pour le chargement. On m'avait demandé d'ajouter dans l'un des petits menus une image qui s'affichai aléatoirement a chaque chargement de page ... et mon script était très mal penser et demandait beaucoup trop d'échanges avec la BD. Je l'ai donc virer et je suis entrain de me pencher sur une meilleur solution. J'ai d'ailleurs une petite idée avec les variables de session (auquel je n'avais pas penser avant et de charger toutes les images dans un array 1 seul fois par session). Ce n'est pas trop le sujet de ce topic, donc je n'étale pas je vais tester ma solution ou une autre et je verrai bien Merci marcha je vais donc faire quelques tests en relisant le topic donné par julp Merci à vous Je ne mets pas résolu car on peut toujours améliorer la rapidité et la qualité de ces codes |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com