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

    Informations professionnelles :
    Activit� : D�veloppeur Java

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

  3. #63
    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
    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...

  4. #64
    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
    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 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.

  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 : 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.

  7. #67
    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

  8. #68
    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+

  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 : 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...).

  10. #70
    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 ?

  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 : 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.

  12. #72
    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 ).

  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 : 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.

  14. #74
    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 ?

  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 : 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).

  16. #76
    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.

  17. #77
    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.

  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 : 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.

  19. #79
    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.

  20. #80
    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)

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