Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/05/2011, 23h17   #1
Membre régulier
 
Avatar de Netek
 
Homme Damien Gros
Développeur Web
Inscription : mars 2011
Messages : 58
Détails du profil
Informations personnelles :
Nom : Homme Damien Gros
Âge : 25
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mars 2011
Messages : 58
Points : 73
Points : 73
Envoyer un message via MSN à Netek
Par défaut Temps de chargement - Test de performance

Bonjour à tous,
J'ai un assez gros problème de temps de chargement des pages sur le serveur d'un client, je vous expose mon problème :

( Désolé si je ne suis pas dans la bonne section )

Donc j'ai 2 serveurs :

Le mien :
Un mutualisé chez OVH, 90plan, qui est l'equivalent de l'offre "Pro" 100Go aujourd'hui
Systeme Linux (je n'ai pas trouvé plus d'info sur l'OS)
PHP 5.2.17
Donc hébergement plutot classique


Le serveur de mon client :
Un serveur dédié chez Ikoula
CPU GenuineIntel, Intel(R) Xeon(R)CPU X3330 @ 2.66GHz
4 go de ram, 2x1 to sata raid 1 hard
Systeme CentOS 5
PHP 5.2.10
Donc logiquement + puissant que mon serveur.


J'ai fait ce petit script en PHP pour tester :

Code :
1
2
3
4
for($i=0;$i<10000;$i++)
{
 echo "<div></div>";
}
J'ai mis les bonnes fonctions avant et apres pour recuperer le temps de chargement de la page.

Resultat :

Mon serveur : Temps de chargement entre 0.01 et 0.03s
Serveur de mon client : Temps de chargement entre 0.21 et 0.33s

On voit deja une différence ...

--------------------------------------------------

Ensuite, dans le div j'ai ajouté un id, donc :
Code :
echo "<div id='test'></div>";
Resultat :

Mon serveur : Temps de chargement entre 0.01 et 0.04s
Serveur de mon client : Temps de chargement entre 0.33 et 0.47s

--------------------------------------------------

Maintenant avec un id qui fait 40 caracteres :

Resultat :

Mon serveur : Temps de chargement entre 0.01 et 0.07s
Serveur de mon client : Temps de chargement autour de 1.5s

--------------------------------------------------

J'ai poussé le vice un peu plus loin avec un id de 5000 caracteres ( a peu pres )

Resultat :

Mon serveur : Temps de chargement entre 0.6 et 1s
Serveur de mon client : Temps de chargement de 73s !

--------------------------------------------------

Ca n'a rien a voir avec l'id lui même, a la base j'avais des onclick, onmouseover, onmouseout etc avec plusieurs fonctions js dans chaque et ca donnait le même résultat. Donc ca a l'air de venir de la taille des "infos" du div.

Voila donc si quelqu'un a une idée ou une piste pour régler ce problème ...
Merci d'avance
Netek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 23h22   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Est-ce que tu as le meme problème avec une page html ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 23h37   #3
Membre régulier
 
Avatar de Netek
 
Homme Damien Gros
Développeur Web
Inscription : mars 2011
Messages : 58
Détails du profil
Informations personnelles :
Nom : Homme Damien Gros
Âge : 25
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mars 2011
Messages : 58
Points : 73
Points : 73
Envoyer un message via MSN à Netek
Salut,

Je viens de tester a l'instant une page html avec 10000 divs ^^ et le chargement est instantané.
Netek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 23h42   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Dans ton test a 10000 div aussi c'etait instantané non ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 23h49   #5
Membre régulier
 
Avatar de Netek
 
Homme Damien Gros
Développeur Web
Inscription : mars 2011
Messages : 58
Détails du profil
Informations personnelles :
Nom : Homme Damien Gros
Âge : 25
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mars 2011
Messages : 58
Points : 73
Points : 73
Envoyer un message via MSN à Netek
donc en gros :
en PHP, 10000 divs avec un id de 40 caracteres = 1.5s de chargement
en html, meme divs, instantané ( j'ai pas le temps précis vu que c'est un fichier html, sans php donc, mais c'est instantané )
Netek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 14h01   #6
Membre expérimenté
 
Avatar de FMaz
 
Inscription : mars 2005
Messages : 648
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 648
Points : 527
Points : 527
De quelle façon t'y prend tu pour obtenir tes temps ?
FMaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 14h28   #7
Membre régulier
 
Avatar de Netek
 
Homme Damien Gros
Développeur Web
Inscription : mars 2011
Messages : 58
Détails du profil
Informations personnelles :
Nom : Homme Damien Gros
Âge : 25
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mars 2011
Messages : 58
Points : 73
Points : 73
Envoyer un message via MSN à Netek
Salut,

Voici le script avec les fonctions pour recuperer le temps de chargement :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
function getmicrotime()
{
 list($usec,$sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}
 
$debut = getmicrotime();
for($i=0;$<10000;$i++)
{
 echo "<div id='test'></div>";
}
$fin = getmicrotime();
echo round($fin - $debut, 3);
Merci
Netek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 14h58   #8
Membre expérimenté
 
Avatar de FMaz
 
Inscription : mars 2005
Messages : 648
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 648
Points : 527
Points : 527
Hum, vraiment étrange.
Essaie ceci pour voir si ce n'est pas le buffer de php qui se vide automatiquement à chaque echo, ce qui pourrait ralentir le processus:

Code :
1
2
3
4
5
6
7
8
9
10
$buffer = ''
$debut = getmicrotime();
for($i=0;$<10000;$i++)
{
 $buffer .= "<div id='test'></div>";
}
$fin = getmicrotime();
echo round($fin - $debut, 3);
 
echo $buffer;
FMaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 20h42   #9
Membre régulier
 
Avatar de Netek
 
Homme Damien Gros
Développeur Web
Inscription : mars 2011
Messages : 58
Détails du profil
Informations personnelles :
Nom : Homme Damien Gros
Âge : 25
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mars 2011
Messages : 58
Points : 73
Points : 73
Envoyer un message via MSN à Netek
Salut et merci pour ta réponse.
Donc j'ai fait ce que tu m'as dit, et j'ai rajouté un getmicrotime() apres l'affichage du buffer.

Donc le temps affiché juste apres la boucle : 0.003s
Et le temps affiché apres l'affichage du buffer : 1.2s

Visuellement le premier temps s'affiche instantanément et le 2eme beh au bout d'1.2s

( Le meme script sur mon serveur : 1er temps 0.002 , 2eme tps 0.009 )

Merci.
Netek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 23h39   #10
Membre expérimenté
 
Avatar de FMaz
 
Inscription : mars 2005
Messages : 648
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 648
Points : 527
Points : 527
Hum, bah déjà on voit que ce n'est pas les commandes PHP qui sont lentes (ce qui est une bonne nouvelles), mais l'envoi du contenu.

La suite dépasse mes compétences, mais déjà, si tu contact l'hébergeur, ton problème est beaucoup plus précis à décrire.
FMaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2011, 11h43   #11
Membre régulier
 
Avatar de Netek
 
Homme Damien Gros
Développeur Web
Inscription : mars 2011
Messages : 58
Détails du profil
Informations personnelles :
Nom : Homme Damien Gros
Âge : 25
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mars 2011
Messages : 58
Points : 73
Points : 73
Envoyer un message via MSN à Netek
Bon on m'avais indiqué de regarder la directive "output_buffering", qui en effet etait a 4096 sur le serveur de mon client et a "off" sur le miens. Mias en l'a passant a off ca n'a rien changé. Du coup je n'ai vraiment aucune autre piste ...
Je crois que je vais contacter l'hebergeur oui.

Merci.
Netek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2011, 15h43   #12
Membre expérimenté
 
Avatar de FMaz
 
Inscription : mars 2005
Messages : 648
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 648
Points : 527
Points : 527
Tiens nous au courant de la solution...
FMaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 11h53   #13
Membre régulier
 
Avatar de Netek
 
Homme Damien Gros
Développeur Web
Inscription : mars 2011
Messages : 58
Détails du profil
Informations personnelles :
Nom : Homme Damien Gros
Âge : 25
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mars 2011
Messages : 58
Points : 73
Points : 73
Envoyer un message via MSN à Netek
Bon,
L’hébergeur n'a pas été capable de trouver la source du problème mais j'ai réussi a le "contourner" en utilisant la compression http://www.en1heure.com/compresser_s...ip_deflate.php

Et la c'est nikel, le temps de transfert des données est quasi instantané.

Voila voila
Netek est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h25.


 
 
 
 
Partenaires

Hébergement Web