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

PHP & Base de donn�es Discussion :

Optimisation de scripts PHP/MySQL [D�bat]


Sujet :

PHP & Base de donn�es

  1. #201
    Membre �m�rite
    Avatar de kankrelune
    Profil pro
    Inscrit en
    D�cembre 2005
    Messages
    763
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 763
    Par d�faut
    Citation Envoy� par -COil-
    Citation Envoy� par Linie
    Bon ben moi j'arrive comme un ch'veux sur la soupe avec pas mal de journ�e de retard mais j'ai une question :

    Pourquoi vous n'utilisai que des echo et jamais des print?

    Ca peut paraitre stupide mais si echo et plus performent que le print je prefeere tous changer maintenant plutot que tout a la fin de mon projet.
    C'est des queues de cerises.. Echo ca fait plutot basic pas beau... print est plus classe et en phase avec le reste des fonction php.
    Et bien d�trompe toi... aussi �tonant que cela puisse paraitre le echo est plus rapide... .. .

    Effectu� avec 250.000 it�rations

    Echo

    Temps : 4.9059 s
    Vitesse : 50.959 instructions par seconde


    Print

    Temps : 5.47369 s
    Vitesse : 45.673 instructions par seconde

    Qui plus est on s'en fout de faire classe () ou pas... l'interet c'est que �a soit fonctionel et performant... .. .

    @ tchaOo�

  2. #202
    Membre tr�s actif
    Homme Profil pro
    PDG
    Inscrit en
    Septembre 2005
    Messages
    101
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 64
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : PDG
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2005
    Messages : 101
    Par d�faut
    Citation Envoy� par kankrelune
    Qui plus est on s'en fout de faire classe () ou pas... l'interet c'est que �a soit fonctionel et performant... .. .
    Le probl�me est de d�finir ce qu'est la performance ^^

    Tes it�rations, tu les a faites sur des chaines courtes ou des chaines longues ?
    Y avait-il des param�tres � �valuer ou non ?

    D'apr�s une discussion que j'avais suivit, echo versus print, l'echo est � utiliser quand on a beaucoup de m�moire disponible car il bufferise tout avant de l'afficher. Donc...
    echo: rapide et m�moire disponible importante
    print: un peu moins rapide (mais je ne suis pas convaincu) et "peu" de m�moire disponible.

  3. #203
    Membre �m�rite
    Avatar de kankrelune
    Profil pro
    Inscrit en
    D�cembre 2005
    Messages
    763
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 763
    Par d�faut
    Citation Envoy� par dasdeb
    Tes it�rations, tu les a faites sur des chaines courtes ou des chaines longues ?
    Y avait-il des param�tres � �valuer ou non ?
    Chaines courtes entre quote simple et sans variables... .. .

    Citation Envoy� par dasdeb
    D'apr�s une discussion que j'avais suivit, echo versus print, l'echo est � utiliser quand on a beaucoup de m�moire disponible car il bufferise tout avant de l'afficher. Donc...
    echo: rapide et m�moire disponible importante
    print: un peu moins rapide (mais je ne suis pas convaincu) et "peu" de m�moire disponible.
    Tout � fait d'accord... .. .

    Ce qui m'a fait r�agir c'est surtout la remarque sur faire plus classe... .. .

    @ tchaOo�

  4. #204
    Membre �m�rite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Par d�faut
    Je reviens au r�sum� du post, deu pages plus t�t : que de conclusiosn hatives... Ne serait-ce que la pr�cision de la mesure. Une solution mesur�e plus rapide peut �tre plus lente � parser, ce qui ne peut �tre �valu� par aucune boucle. Aucun ordre de grandeur n'est donn�. Peu importe qu'une fonction soit 50 % plus rapide qu'une autre si son temps d'execution se compte en microsecondes.

  5. #205
    Membre �prouv� Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Par d�faut
    J'ai fait quelque bench et voila ce que j'ai pu remarquer pour optimiser:

    pour les requettes de plusierus ligne sur une base de donn�:

    mieu vaut faire
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $req=mysql_query("SELECT * FROM `news` ORDER BY `id` DESC LIMIT 0,10");
      for($i=0;$i<10;$i++)   //Récupération de tout les champs des news
      {
       $row=mysql_fetch_array($req);
       $id[$i]=$row['id'];
       $Titrenews[$i]=$row['Titre'];
       $Posteur[$i]=$row['Posteur'];
       $Textenews[$i]=nl2br(str_replace("\\","",$row['news']));
       $Datenews[$i]=$row['Date'];
       $imggauchenews[$i]=$row['imagegauche'];
       $imgdroitenews[$i]=$row['imagedroite'];
       $typenews[$i]=$row['typenews'];
      }
    que
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $res = mysql_query("SELECT * FROM news ORDER BY id DESC LIMIT 0,10") or die (mysql_error()) ;
     while ( $row=mysql_fetch_array($res) ) {
        $id[]        = $row['id'] ;
        $Titrenews[] = $row['Titre'] ;
        $Posteur[]   = $row['Posteur'] ;
        $Textenews[] = nl2br(str_replace("\\","",$row['news'])) ;
        $Datenews[]  = $row['Date'] ;
        $imggauchenews[] = $row['imagegauche'] ;
        $imgdroitenews[] = $row['imagedroite'] ;
        $typenews[]  = $row['typenews'] ;
     }
    (il ya bien 10 r�sultat donc dans la BDD d'ou le 10 dans le for)


    2em truc que j'ai remarqu�. SI vous inclu� plusieurs fonctions dans votre pages. Il vaut mieu les mettres toutes dans une seul page et inclure celle-ci.

    J'ai gagn� 8% en faisant ca. (juste pour en mettant 1 incolude au lieu de 5!).

    SInon j'ia constat� que de mani�re g�n�ral tout les includes faisait perdre du temps. Par exmeple je mettais toute mes balise meta dans un include. J'ai essay� en mettant directement les meta sur la page et j'ai gagn� 12%.

    Donc utiliser le moin d'include possible!! Sauf pour les parties qui seront succeptible d'�tre modifier et qui apparaisse sur beaucoup de pages de votre site.

  6. #206
    Membre Expert
    Inscrit en
    Juillet 2004
    Messages
    1 027
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Par d�faut
    Pour ce qui est de l'utilisation des boucles for au lieu de while dans une requete le gain nest pas franchement cons�quent. D'apr�s ce que j'ai pu tester, sur 30 000 lignes, le gain est de 0.05 sec... Ce n'est pas cela qui me fera changer de m�thode lol

    Sinon je suis un peu etonn� par ceci
    SInon j'ia constat� que de mani�re g�n�ral tout les includes faisait perdre du temps. Par exmeple je mettais toute mes balise meta dans un include. J'ai essay� en mettant directement les meta sur la page et j'ai gagn� 12%.
    12 % ? Sur combien de temps d'execution global ? C'est quoi ton environement de test ?

    Je pr�cise que j'ai test� en PHP5.. C'est peut etre idff�rent en php 4.

  7. #207
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2005
    Messages
    154
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 154
    Par d�faut
    est ce qu'il y a une fonction qui retourne le temps d'affichage de la page pour pouvoir connaitre le temps qu'il a fallu pour afficher une page, ou alors des site qui "bench" ca

  8. #208
    Expert confirm�
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    D�tails du profil
    Informations personnelles :
    �ge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868

  9. #209
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2005
    Messages
    154
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 154
    Par d�faut
    merci beaucoup

  10. #210
    Membre �prouv� Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Par d�faut
    Citation Envoy� par ePoX
    Pour ce qui est de l'utilisation des boucles for au lieu de while dans une requete le gain nest pas franchement cons�quent. D'apr�s ce que j'ai pu tester, sur 30 000 lignes, le gain est de 0.05 sec... Ce n'est pas cela qui me fera changer de m�thode lol

    Sinon je suis un peu etonn� par ceci
    SInon j'ia constat� que de mani�re g�n�ral tout les includes faisait perdre du temps. Par exmeple je mettais toute mes balise meta dans un include. J'ai essay� en mettant directement les meta sur la page et j'ai gagn� 12%.
    12 % ? Sur combien de temps d'execution global ? C'est quoi ton environement de test ?

    Je pr�cise que j'ai test� en PHP5.. C'est peut etre idff�rent en php 4.
    Je me suis fait un petit script qui r�cupert le temps d'affichage de la page. Je fais plusieurs rafraichissement automatique et je fais la moyenne jusqu'a une certaine pr�cision (ce qui fait a peu pres 300 rafraichissement).
    J'ai fait ca 3 fois et j'en ai fait la moyenne. Je pense donc que les valeurs ne sont pas trop fausse. Sinon j'ai fait le test sous easyphp en php4.

    Aussi mes pages sont compress� avec gzip. (que je conseille, 80% de gaon !!!).

  11. #211
    Membre �m�rite
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Par d�faut
    Death83 : pour "mesurer" les includes, ta m�thode n'est pas bonne : tu ne tiens pas compte du temps de "parsing" du script principal !

    Si tu veux vraiment comparer, ce n'est pas via PHP qu'il faut le faire... ou alors ajoute syst�matiquement un niveau d'inclusion.

    Apr�s il y a de tr�s nombreux facteurs qui peuvent entrer en jeu (version de PHP, cache disque, et surtout cache d'opcode).

  12. #212
    Membre Expert
    Inscrit en
    Juillet 2004
    Messages
    1 027
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Par d�faut
    C'est quoi sa les opcode ?

  13. #213
    Membre chevronn� Avatar de GregPeck
    Inscrit en
    Novembre 2005
    Messages
    530
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 530
    Par d�faut
    Citation Envoy� par ePoX
    C'est quoi sa les opcode ?
    Ton script php avant d'�tre �x�cut� est "compil�". Le cache d'opcode permet � ton serveur php d'utiliser la version d�j� "compil�" sans �tre oblig� de recommencer � partir des sources php � compiler.

    Enfin il me semble, corrigez moi si je me trompe.

  14. #214
    Membre �prouv� Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Par d�faut
    Citation Envoy� par Kioob
    Death83 : pour "mesurer" les includes, ta m�thode n'est pas bonne : tu ne tiens pas compte du temps de "parsing" du script principal !

    Si tu veux vraiment comparer, ce n'est pas via PHP qu'il faut le faire... ou alors ajoute syst�matiquement un niveau d'inclusion.

    Apr�s il y a de tr�s nombreux facteurs qui peuvent entrer en jeu (version de PHP, cache disque, et surtout cache d'opcode).
    Je voulais mesurer directement l'influence sur une page. C'est ce qui m'interesse vu que je veux optimiser les pages de mon site.

  15. #215
    Membre �m�rite
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Par d�faut
    Et justement, comme tu ne peux pas mesurer le temps de compilation du script principal, tes r�sultats sont compl�tement faux.

  16. #216
    Membre chevronn� Avatar de XtofRoland
    Profil pro
    Inscrit en
    Ao�t 2005
    Messages
    357
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 357
    Par d�faut
    ++i est legerement plus performant que i++ ;-)
    mais c'est du detail ;-)

  17. #217
    R�dacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    F�vrier 2004
    Messages
    13 721
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activit� : Directeur technique

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 13 721
    Par d�faut
    Citation Envoy� par XtofRoland
    ++i est legerement plus performant que i++ ;-)
    mais c'est du detail ;-)
    Ouaip, je confirme.

  18. #218
    Membre exp�riment�
    Inscrit en
    Janvier 2004
    Messages
    242
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Par d�faut
    Un truc tout bete d'optimisation, installer un cache du script compil� genre eaccelerator et les perfs seront grandement am�lior�e.

    Donc c'est bien d'optimiser a mort le code, faudrait aussi que �a soit le cas du cot� du serveur

  19. #219
    Membre �m�rite
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Par d�faut
    Citation Envoy� par chaced
    Donc c'est bien d'optimiser a mort le code, faudrait aussi que �a soit le cas du cot� du serveur
    yep, mais �a c'est bien souvent l'hebergeur qui le controle.

    Et puis sur un truc cod� comme un goret, le cache d'OpCode ne changera pas grand chose : phpBB est lent qu'eAccelerator soit install� ou non.

  20. #220
    R�dacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    F�vrier 2004
    Messages
    13 721
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activit� : Directeur technique

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 13 721
    Par d�faut
    Citation Envoy� par Kioob
    phpBB est lent qu'eAccelerator soit install� ou non.
    Troll spotted
    S�rieusement, heureusement que phpBB met en cache pas mal de trucs (ex. : nombre de posts par user), sans quoi ce serait encore plus lent (et pourtant, ce serait la "bonne" m�thode � utiliser).
    Vivent les index ?

Discussions similaires

  1. [D�butant] Acc�l�rer et optimiser ses scripts PHP
    Par Metallic-84s dans le forum Langage
    R�ponses: 6
    Dernier message: 24/03/2006, 12h37
  2. [MySQL] [SGBD] Script PHP/MYSQL d'access FTP
    Par ChRom dans le forum PHP & Base de donn�es
    R�ponses: 1
    Dernier message: 09/01/2006, 01h52
  3. R�ponses: 9
    Dernier message: 05/01/2006, 12h24
  4. Recherche Login Script PHP & MySQL
    Par whbh dans le forum SQL Proc�dural
    R�ponses: 9
    Dernier message: 01/12/2005, 16h45
  5. [MySQL] [Script]Optimisation de scripts Php/MySQL (2)
    Par copy dans le forum PHP & Base de donn�es
    R�ponses: 8
    Dernier message: 27/08/2004, 08h33

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