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 :

Consommation mémoire de l'opérateur ternaire vs if


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Responsable d’équipe
    Inscrit en
    Août 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Responsable d’équipe

    Informations forums :
    Inscription : Août 2003
    Messages : 27
    Points : 23
    Points
    23
    Par défaut Consommation mémoire de l'opérateur ternaire vs if
    Salux à tous,

    Je m'inquiète sur la consommation mémoire de l'opérateur ternaire par rapport à la fonction if.

    En effet, j'ai remplacé ce bout de code qui consommé 4495.17 Ko :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (isset($_GET['complr']) AND isset($_GET['complc'])) {
    	$voiture = $_GET['complr'];
    	$bus = $_GET['complc'];
    }else {
    	$voiture = $reunion_url;
    	$bus = $course_url;
    par ce bout de code qui consomme maintenant 4495.3 Ko :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $voiture = (isset($_GET['complr'])) ? $_GET['complr'] : $reunion_url;
    $bus = (isset($_GET['complc'])) ? $_GET['complc'] : $course_url;
    C'est une légère augmentation, mais avec 54 fonction if à remplacer par des opérateurs ternaires, l'augmentation au finale va être plus importante ?

    Avez-vous déjà remarquer cette différence ?

    Cordialement,
    GaLaGaNN

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    La micro-optimisation est inutile : regarde ta mesure, tu as une différence de 0,003% ; même répété sur des centaines de lignes, tu n'as rien a gagner.

    Visiblement l'operateur ternaire est moins rapide sur des grandes quantités de données car il effectue une copie.

  3. #3
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    A noter que le code équivalent exact est :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $voiture = (isset($_GET['complr'])&&($_GET['complc'])) ? $_GET['complr'] : $reunion_url;
    $bus = (isset($_GET['complr'])&&($_GET['complc'])) ? $_GET['complc'] : $course_url;

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Moins rapide... peut-être...
    Mais quelle économie de code !

    Moi, ça me va.

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Citation Envoyé par galagann Voir le message
    Salux à tous,

    Je m'inquiète sur la consommation mémoire de l'opérateur ternaire par rapport à la fonction if.
    Sérieusement, la lisibilité de ton code est plus important qu'une micro-optimisation comme ça. Regarde quelle expression est la plus lisible pour toi, et utilises-la.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Responsable d’équipe
    Inscrit en
    Août 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Responsable d’équipe

    Informations forums :
    Inscription : Août 2003
    Messages : 27
    Points : 23
    Points
    23
    Par défaut
    Salux à tous pour vos réponses.

    Merci et bien vu laurentSc !

  7. #7
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    allez parce que c'est noël, en une ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list($voiture, $bus) = (isset($_GET['complr'], $_GET['complc'])) ? [$_GET['complr'], $_GET['complc']] : [$reunion_url, $course_url];

    de rien

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est beau en rouge et vert comme un sapin de noël.

  9. #9
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par rawsrc Voir le message
    allez parce que c'est noël, en une ligne :
    Une seule ligne, OK, mais la lisibilité en prend un coup...

  10. #10
    Membre à l'essai
    Homme Profil pro
    Responsable d’équipe
    Inscrit en
    Août 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Responsable d’équipe

    Informations forums :
    Inscription : Août 2003
    Messages : 27
    Points : 23
    Points
    23
    Par défaut
    Re,

    Alors ça rawsrc, c'est de l'optimisation de code !

    Je vois que j'ai encore du chemin à parcourir...

    Merci à tous,
    GaLaGaNN

Discussions similaires

  1. [Consommation mémoire] Quoi utiliser pour trouver?
    Par doudine dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 25/01/2006, 13h50
  2. Réponses: 4
    Dernier message: 09/11/2005, 13h32
  3. Equivalant opérateur ternaire C++
    Par Pero dans le forum Langage
    Réponses: 5
    Dernier message: 07/10/2005, 09h44
  4. [java] pb Opérateur ternaire
    Par phileme dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 04/07/2004, 13h10
  5. Opérateur ternaire
    Par MASSAKA dans le forum Langage
    Réponses: 14
    Dernier message: 13/05/2004, 15h50

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