Lenteur sur page d'accueil

WRInaute discret
Bonjour à tous

Je viens demander conseil pour un problème de lenteur d'affichage de page. Jusqu'à il n'y a pas longtemps tout marchait normalement, mais depuis quelques temps, ma page d'accueil est très lente et je n'en trouve pas la raison. Je pensais que ça venait des différents flux rss, mais même en les supprimant le problème ne change pas. Le problème de lenteur se situe uniquement sur la page d'accueil.

J'ai donc fait des tests : http://www.monitoring-transactionnel.com/performance/5f6ba8a635f18eaac ... c2bb43e628
et
http://www.websiteoptimization.com/services/analyze/

Ok je vois bien que ça met 8 seconde en tout, mais je ne vois pas vraiment ce que je peux changer pour résoudre le problème.

Quelqu'un aurait une petite idée ?

Merci
 
WRInaute passionné
plus de 7 secondes d'attente avant de commencer le chargement de la page html : il y a surement un problème avec un index manquant ou un bout de code trop long.
 
WRInaute passionné
je parlais d'index sur une table en base de données. Si tu n'as pas bien construit ta BDD et tes requêtes il est possible de parcourir tous les enregistrements d'une grosse table pour trouver les bons. Ca peut être très long suivant les cas.
Si tu ne trouves pas de solution technique justifiant ce temps il faut peut être prévoir de générer la page de temps en temps et de n'afficher qu'une version en cache aux visiteurs.
 
WRInaute impliqué
Tu peux deja faire un test tout bete :
1/ tu affiches ta page avec firefox par exemple ensuite tu fais CTRL U pour avoir le source de la page.
2/ Tu crees un fichier test.php et tu colles tous le source dans ce fichier.
3/ Tu met ce fichier au même endroit que ton index.php sur ton serveur
4/ Tu appels cette page

Tu sauras ainsi déjà si c'est un problème de repêchage de données dans ta base ou alors plus sur ton hébergement.
L'interet aussi c'est que tu vas pourvoir après dans ta page static virer petit a petit des trucs je pense notamment aux appels javascript pour voir si cela ne pêche pas de ce côté.

Si c'est pour teeshotweb j'ai un truc bizarre dans firebug qui m'indique :

Error en rouge avec ce message d'erreur
Permission refusée à <http://googleads.g.doubleclick.net> d'appeler la méthode Location.toString de <(null)>
 
WRInaute discret
J'ai fais tes tests, si je mets le code source, l'affichage est quasi instantané :
http://www.teeshotweb.com/test.php

Si je fais un test avec les flux rss et la pub adsense c'est plus lent. Si j’enlève uniquement les flux rss c'est toujours lent, si j’enlève juste la pub adsense c'est toujours lent, j’enlève flux + pub c'est rapide.

http://www.teeshotweb.com/test-2.php

Si je fais un autre test avec le reste de la page sans les flux rss et la pub google c'est aussi quasi instantané.

http://www.teeshotweb.com/test-3.php

Pour le moment ma page s'affiche correctement, j'ai déjà eu des messages d'erreur récurant concernant le décodage des flux rss, qui empêche carrément l’affichage du site.

Pour les flux, j'utilise magpierss, peut il y avoir un problème de décodage du à l'hébergeur ?

Par contre j'ai regardé avec firebug et firefox, je n'ai pas trouvé le message que tu as signalé. Je ne l'ai pas non plus sur chrome + firebug ( c'est le duo que j'utilise).

Merci
 
WRInaute discret
voila j'ai regardé, mais pas grand chose, pour aujourd'hui j'ai 3 fois cette ligne :

[07-Jul-2011 13:46:48] PHP Fatal error: Call to a member function sql_query() on a non-object in /home/teeshotw/public_html/index.php on line 133

et 1 fois celle la :

[07-Jul-2011 14:00:52] PHP Fatal error: Call to a member function sql_query() on a non-object in /home/teeshotw/public_html/forum/ads/functions.php on line 73

c'est tout.
 
WRInaute accro
Tee shot a dit:
voila j'ai regardé, mais pas grand chose, pour aujourd'hui j'ai 3 fois cette ligne :

[07-Jul-2011 13:46:48] PHP Fatal error: Call to a member function sql_query() on a non-object in /home/teeshotw/public_html/index.php on line 133

et 1 fois celle la :

[07-Jul-2011 14:00:52] PHP Fatal error: Call to a member function sql_query() on a non-object in /home/teeshotw/public_html/forum/ads/functions.php on line 73

c'est tout.
ben voilà, tu l'as trouvée la cause de la lenteur : l'appel à une fonction erronée
 
WRInaute discret
Merci

je ne pense pas que e soit cela, il n'y a que 3 lignes pour la journée et ça ne me semble pas assez pour le nombre de visiteurs que j'ai, en plien que moi j'ai charger ma page cent fois pour faire mes tests, donc 3 fois ça me parait peu.
 
WRInaute passionné
C'est en effet curieux, car la page test se charge plus vite de la page index. Ce n'est donc pas un soucis d'indexation d'un champ dans ta base. C'est spécifique au chargement de la page index.
Avec mon mac et safari, le premier chargement a été très long, mais ensuite, l'actualisation est plus rapide. mais quand même, il y a un soucis.

Quelques chose peut être dans la conf du serveur pour servir la page d'accueil? un traçage ou reverse ip? le calcul d'un cookie?
Tu as essayé le reboot du serveur (si possible)?
 
WRInaute impliqué
Il n'empêche que tu as bien avancé, c'est donc bien un problème de repêchage des données dans la base qui provoque ton ralentissement.
Il te faut maintenant essayer d'isoler toutes les requêtes et les analyser avec phpmyadmin par exemple, tu passes tes requetes une par une en mettant EXPLAIN devant.

Comme dit HawkEye
Maintenant tu as aussi la soluce de cache très facile à mettre en oeuvre, vu ta page d'accueil tu peux de permettre d'avoir un cache qui dure au moins 30 secondes, ainsi un seul internaute aura cette durée les autres auront la durée de la page static.
En plus tu seras gagnant car ton hebergement tiendra bien mieux la charge. Les caches sont super simple à mettre en oeuvre avec php en gros souvent ces 2 ou 3 lignes de code à ajouter au debut du sources et 2 lignes en fin du sources.
 
WRInaute discret
Merci pour vos soluces, je vais mettre la page en cache dans un premier temps et je vais voir ensuite pour tester les requêtes.

J'ai quand même un peu de mal à croire que c'est les requêtes, vu que sur ma page d’accueil, c'est les mêmes bases sql que pour les autres pages qui marchent normalement. Mais je ferais les tests, vu que c'est le weekend je fais le cache et la semaine prochaine je testerai les requêtes.

Je vous tiens au courant.

Merci encore.
 
WRInaute discret
Bon voila j'ai mis une grande partie de la page en cache, 15 mn. ça marche impeccable.

J'ai pas mis toutes la page à cause des sessions phpbb ne restait pas connecté quand on raffraichissait la page.

Je ferai des tests la semaine prochaine, mais le cache est une très bonne solution.

Merci beucoup.
 
WRInaute passionné
Si tu charges à chaque affichage de page un fichier rss distant, c'est peut-être la cause de ce temps de chargement long. Le mieux dans ce cas c'est de faire un cron qui le récupère régulièrement, le décode et le stock en base.
 
WRInaute discret
Merci

Je vais tenter cette manip, mais j'avoue qu'il faut que je trouve comment faire. Pour le cron pas de problème par contre récupérer le flux, le décoder etle stocker en base, je ne sais pas faire. Il y a quelque part un début d'explication pour faire ce genre de chose ?

Merci
 
WRInaute passionné
Si tu récupères un fichier rss et que tu l'affiches tu dois bien savoir ce qui se passe entre les deux non ? Tu peux aussi sauvegarder dans un fichier le flux mis en forme (le code html que tu affiches sur la page d'accueil pour ce flux).
 
Discussions similaires
Haut