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

Langage PHP Discussion :

[Optimisation] Boucles for ou while et mysql_result ?


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de sorenson
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 84
    Points
    84
    Par défaut [Optimisation] Boucles for ou while et mysql_result ?
    Bonjour,

    pourriez-vous répondre à ces deux questions :

    - y-t-il une différence de rapidité entre une boucle for et une boucle while ?
    - mysql_result est-il plus rapide que $row["champ"] ?

    merci de vos réponses,

    Sorenson

  2. #2
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 271
    Points
    271
    Par défaut
    Citation Envoyé par sorenson
    Bonjour,

    pourriez-vous répondre à ces deux questions :

    - y-t-il une différence de rapidité entre une boucle for et une boucle while ?
    - mysql_result est-il plus rapide que $row["champ"] ?

    merci de vos réponses,

    Sorenson
    un for($i=0;$i<count($toto);$i++) est plus lent qu'un for($i=0,$j=count($toto);$i<$j;++$i) car la fonction count est rappeler a chaque itération de la boucle.

    Ensuite le while est légérement plus rapide, mais vu que l'on doit incrementer dans la boucle, la perte est quasi nulle.

    pour ton $row[id] ou $row['monchamp'] c'est quasi équivalent, et le 2eme est bien plus lisible.

  3. #3
    Membre régulier Avatar de sorenson
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 84
    Points
    84
    Par défaut
    merci pour ta réponse,

    j'ajouterai même qu'on purrait ajouter une variable avant la bucle for :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    for($i=0,$j=count($toto);$i<$j;++$i) 
    --
    $lgTab=count($toto);
    for($i=0,$i<$lgTab;$i++)

  4. #4
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 271
    Points
    271
    Par défaut
    Citation Envoyé par sorenson
    merci pour ta réponse,

    j'ajouterai même qu'on purrait ajouter une variable avant la bucle for :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    for($i=0,$j=count($toto);$i<$j;++$i) 
    --
    $lgTab=count($toto);
    for($i=0,$i<$lgTab;$i++)
    Ce que fait le ,$j=count...

    Ps : et le ++$i est plus rapide, mais la je chipotte

  5. #5
    Membre régulier Avatar de sorenson
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 84
    Points
    84
    Par défaut
    tout à fait

    le ++$i ? oui... efefctivement, je viens d'ouvrir mon bouquin pour regarder il me dit ceci :

    echo $i++."--".$i donne 9--10
    echo ++$i."--".$i donne 10--10

    génial.

  6. #6
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 271
    Points
    271
    Par défaut
    Citation Envoyé par sorenson
    tout à fait

    le ++$i ? oui... efefctivement, je viens d'ouvrir mon bouquin pour regarder il me dit ceci :

    echo $i++."--".$i donne 9--10
    echo ++$i."--".$i donne 10--10

    génial.
    En fait, c'etait tres sensible sur php4, moins sur php5, mais ça reste une abération car en C il n'y a pas de différence.

    En fait, en analysant la chose, on s'apperçoit que php, pour faire un i++, crée une variable intermediaire, lui met la valeur de i, l'incremente et la renvoit a i.
    un ++i incrémente directement la destination (par adressage).

    C'est comme si tu met une chaine
    $toto="bob";
    echo 'salut le monde $toto va bien';
    et
    echo "salut le monde $toto va bien";

    Le 1er cas ira 3 fois plus vite que le 2eme echo, sauf que le 1er ne va pas interpreter le $toto, d'ou la vitesse supérieure.

    Bref, il y a plein d'astuce a la con pour accélérer un script.

Discussions similaires

  1. Boucle for Vs While sur un Iterator
    Par thierryler dans le forum Langage
    Réponses: 6
    Dernier message: 27/10/2010, 13h30
  2. Boucle for ou while
    Par auberstar dans le forum Débuter
    Réponses: 5
    Dernier message: 01/05/2010, 20h22
  3. Optimisation boucle for
    Par kwatz dans le forum MATLAB
    Réponses: 10
    Dernier message: 03/03/2009, 08h48
  4. Boucle For et While
    Par mairou dans le forum Débuter
    Réponses: 6
    Dernier message: 20/09/2008, 20h33

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