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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    m@
    m@ est déconnecté
    Membre expérimenté
    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
    Par défaut
    la première, mais là encore ce n'est qu'une histoire d'une ou deux instructions.

  2. #2
    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 : 42
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2003
    Messages : 389
    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.

  3. #3
    m@
    m@ est déconnecté
    Membre expérimenté
    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
    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

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 7
    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+

  5. #5
    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 : 42
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2003
    Messages : 389
    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 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...).

  6. #6
    Membre à l'essai
    Inscrit en
    Janvier 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 6
    Par défaut
    salut,

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

  7. #7
    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 : 42
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2003
    Messages : 389
    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.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 7
    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 ).

  9. #9
    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 : 42
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2003
    Messages : 389
    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.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 7
    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 ?

  11. #11
    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 : 42
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2003
    Messages : 389
    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).

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 7
    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.

  13. #13
    Membre expérimenté
    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
    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.

  14. #14
    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 : 42
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2003
    Messages : 389
    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.

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

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    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 :resolu: (en bas)

  17. #17
    Membre averti
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2003
    Messages : 52
    Par défaut
    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.

  18. #18
    Membre expérimenté
    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
    Par défaut
    Moi aussi j'ai eu ma période "cout tout pourri" et "printf trop prise de tête"
    Au final chacun a ses charmes.

  19. #19
    Futur Membre du Club
    Inscrit en
    Juin 2004
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 6
    Par défaut
    Citation Envoyé par Swoög
    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...]
    Merci pour les lien. Mais j'ai un handicap de taille pour faire dde l'info je deteste l'anglais et j'y comprend pas grand chose.

    Mais c'est interessant alors je vais prendre mon courage a deux mains.

  20. #20
    Membre expérimenté
    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
    Par défaut
    fr au début des liens, ça veut dire quoi à ton avis? c'est la page en français qui est appelée, bien sur.

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