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. #61
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Merci beaucoup de vos réponses.
    En gros d'après ce que vous me dites, quelles que soient les solutions que je choisis pour ces différents problèmes, les écarts d'efficacité ne seront pas significatifs donc, même si apparemment il vaut mieux en gros faire le moins d'include possible mais que c'est pas si grave que ça, après c'est une question de confort de lisibilité, c'est bien ça ?

  2. #62
    Membre éclairé
    Avatar de iubito
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2003
    Messages : 389
    Points : 655
    Points
    655
    Par défaut
    lisibilité et réutilisation
    Si tu as 2 algos quasi identiques (juste un chiffre qui change ou un truc dans le style), tu fais une fonction avec un paramètre.
    Le jour où tu change ton algo, tu le fais qu'à un seul endroit.
    Membre éclairé, lol !

  3. #63
    m@
    m@ est déconnecté
    Membre actif
    Avatar de m@
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 143
    Points : 292
    Points
    292
    Par défaut
    pour moi le seul moment où la lisibilité doit être sacrifiée pour la puissance, c'est que ton serveur est à genoux où que tu as du code qu'il est vraiment capital d'exécuter à toute vitesse, ce qui est plutôt rare en PHP...
    Si vous fermez la porte à toutes les erreurs, la vérité restera dehors. (Tagore)

    Mandrake 10.1 up to date
    OpenBSD 3.5
    Win XP SP 2

  4. #64
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Ah oui quand même )
    Je pensais que la lisibilité devait être sacrifiée plus que ça au profit de la puissance moi. Bon ben c'est bien tout ça.
    j'ai une autre colle : quelle expression est-elle plus rapide :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if($toto==0)
    {
        if($tata==0)
        else
    }
    else
    OU

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if($toto==0 && tata==0)
    else if($toto==0 && tata!=0)
    else
    Merci d'avance.

  5. #65
    m@
    m@ est déconnecté
    Membre actif
    Avatar de m@
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 143
    Points : 292
    Points
    292
    Par défaut
    la première, mais là encore ce n'est qu'une histoire d'une ou deux instructions.
    Si vous fermez la porte à toutes les erreurs, la vérité restera dehors. (Tagore)

    Mandrake 10.1 up to date
    OpenBSD 3.5
    Win XP SP 2

  6. #66
    Membre éclairé
    Avatar de iubito
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2003
    Messages : 389
    Points : 655
    Points
    655
    Par défaut
    Citation Envoyé par m@
    la première, mais là encore ce n'est qu'une histoire d'une ou deux instructions.
    m@ > pour faire comprendre, ça serait bien de justifier

    C'est la première car il ne teste qu'une fois si $toto == 0, et qu'un test sur $tata.

    Dans la 2e, il teste une fois $toto et $tata, puis une autre fois $toto et $tata.
    Membre éclairé, lol !

  7. #67
    m@
    m@ est déconnecté
    Membre actif
    Avatar de m@
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 143
    Points : 292
    Points
    292
    Par défaut
    iubito >> c'est promis je le referai plus...

    il y a 3 cas de figure (le test après && n'est pas effectué si le premier est faux)

    si toto = 0 et tata = 0
    1 : test toto, test tata, code
    2 : test toto, test tata, code (ici on gagne même une instrruction (JMP))

    si toto = 0 et tata != 0
    1 : test toto, test tata, code
    2 : test toto, test tata, test toto, test tata, code

    si toto != 0
    1 : test toto, code
    2 : test toto, test toto, code

    1 est donc mieux ou quasiment équivalent dans tous les cas de figure
    Si vous fermez la porte à toutes les erreurs, la vérité restera dehors. (Tagore)

    Mandrake 10.1 up to date
    OpenBSD 3.5
    Win XP SP 2

  8. #68
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Merci encore, pour vous récompenser j'en ai une autre :
    Est-ce qu'il vaut mieux écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $bebete='toto'.$tata.'tutu';
    $GLOBALS[$bebete]
    OU

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $GLOBALS['toto'.$tata.'tutu']
    dans le cas ou la $GLOBALS en question est appelée plusieurs fois ? Autrement est-ce que la concaténation prend plus de temps à être exécutée que de rajouter une variable ? C'est quoi le mieux ?
    Merci d'avance encore.
    A+

  9. #69
    Membre éclairé
    Avatar de iubito
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2003
    Messages : 389
    Points : 655
    Points
    655
    Par défaut
    le mieux c de créer une variable je pense.
    1) ça fait une seule fois la concaténation (elle paraît simple comme ça, mais c tout de même une opération sur une chaine de caractères)
    2) ça évite les erreurs.

    Et quand t'as plus besoin de ta bébête, tu fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unset($bebete);
    Le unset c'est pour supprimer une variable (= récupérer la mémoire). Sur une chaine ou un entier, c'est rien, mais prendre l'habitude de le faire quand on utilise une variable temporaire c'est bien, car on y pense quand les variables temporaires sont plus grosses (objet, tableau...).
    Membre éclairé, lol !

  10. #70
    Candidat au Club
    Inscrit en
    Janvier 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    salut,

    le mysql_close(); à la fin de son code mysql est il vraiment nécessaire ?

  11. #71
    Membre éclairé
    Avatar de iubito
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2003
    Messages : 389
    Points : 655
    Points
    655
    Par défaut
    Citation Envoyé par Darkblast
    salut,

    le mysql_close(); à la fin de son code mysql est il vraiment nécessaire ?
    normalement non, php ferme tout seul, mais je préfère fermer mysql juste après ma dernière utilisation. Comme ça si y'a du traitement PHP un peu long après la dernière utilisation de MySQL, il ne bloque pas une connexion à la base de données.

    Pour libérer de la mémoire, il faut bien utiliser des mysql_free_results ou dans le genre.
    Membre éclairé, lol !

  12. #72
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    mais par contre ce n'est pas valable pour les conections persistantes, si ? (pas taper, erzebet n'a peut-être rien compris ).

  13. #73
    Membre éclairé
    Avatar de iubito
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2003
    Messages : 389
    Points : 655
    Points
    655
    Par défaut
    c pas un truc mysql_pclose pour une connexion persistante.

    Mais bon, recherche sur le forum, y'a eu des débat connexion persistante ou non. Perso je suis contre, à moins d'avoir comme en java la possibilité d'avoir un spool de connexion toujours instancié et que n'importe quelle classe fait appel, mais en php j'pens epas que c possible.
    Membre éclairé, lol !

  14. #74
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    oui alors euh oui moi j'ai pas tout compris là
    En fait j'utilise des connexions persistantes uniquement pour un truc que je développe actuellement et qui n'est utilisable que sur un serveur local : ca me permet de controler le nombre d'utilisateurs connectés à la base et donc au programme.
    Sinon je ne les utilise jamais mais je pourrais pas dire que c'est pour les mêmes raisons que toi parce que j'ai pas compris mais j'irai voir sur le forum pour comprendre. Merci en tous cas.
    Et donc la fonction dont tu parles en fait, elle fait le même effet que la fin de d'un script php, comme pour une connexion normale ?

  15. #75
    Membre éclairé
    Avatar de iubito
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2003
    Messages : 389
    Points : 655
    Points
    655
    Par défaut
    Citation Envoyé par erzebet
    oui alors euh oui moi j'ai pas tout compris là
    En fait j'utilise des connexions persistantes uniquement pour un truc que je développe actuellement et qui n'est utilisable que sur un serveur local : ca me permet de controler le nombre d'utilisateurs connectés à la base et donc au programme.
    Sinon je ne les utilise jamais mais je pourrais pas dire que c'est pour les mêmes raisons que toi parce que j'ai pas compris mais j'irai voir sur le forum pour comprendre. Merci en tous cas.
    Et donc la fonction dont tu parles en fait, elle fait le même effet que la fin de d'un script php, comme pour une connexion normale ?
    pour la fonction... le réflexe doc PHP (ça aussi c'est de l'optimisation, ça évite de poser une question ) http://fr.php.net/NOM_DE_LA_FONCTION
    http://fr.php.net/mysql
    http://fr.php.net/mysql_pclose

    et là tu verras si y'a quelque chose (j'ai pas testé les URL).
    Membre éclairé, lol !

  16. #76
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    tout a fait, d'ailleurs pclose n'existe pas
    je verrai pour ça c'est pas urgent façon.

    J'ai une autre question : est-il plus long d'utiliser $GLOBALS['toto'] que $toto ?
    Merci d'avance.

  17. #77
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2002
    Messages : 299
    Points : 373
    Points
    373
    Par défaut
    Citation Envoyé par erzebet
    tout a fait, d'ailleurs pclose n'existe pas
    je verrai pour ça c'est pas urgent façon.

    J'ai une autre question : est-il plus long d'utiliser $GLOBALS['toto'] que $toto ?
    Merci d'avance.
    Et pourquoi tu ne demanderais pas au systeme?
    Aller un coup de main : pour récupérer l'heure courante
    http://fr3.php.net/manual/fr/function.microtime.php
    Tu recupere avant, tu execute un script 1000 fois dans une boucle, et tu recupere apres, tu soustrais.
    Même chose avec l'autre script, et tu regarde le plus rapide. A faire bien sur plusieurs fois, chez toi et en n'ayant rien qui tourne qui pourrait fausser le test.

  18. #78
    Membre éclairé
    Avatar de iubito
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2003
    Messages : 389
    Points : 655
    Points
    655
    Par défaut
    fait des tests comme sur mon bench, tu peux t'inspirer du code, même si il est un peu fouilli.
    Quand tu auras un test, balance-le code et je le mettrai dans le bench.
    Membre éclairé, lol !

  19. #79
    Futur Membre du Club
    Inscrit en
    Juin 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    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.

  20. #80
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    en fait, je pense que c'est principalement pour des questions de lisibilités et de possibilités :

    http://fr.php.net/print
    http://fr.php.net/echo

    comme tu peux le voir, echo offre plus de possibilitées au niveau de la sythaxe, notamment, se débarasser des parenthèses, here doc, [etc...]
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

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, 13h37
  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, 02h52
  3. Réponses: 9
    Dernier message: 05/01/2006, 13h24
  4. Recherche Login Script PHP & MySQL
    Par whbh dans le forum SQL Procédural
    Réponses: 9
    Dernier message: 01/12/2005, 17h45
  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, 09h33

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