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 Delphi Discussion :

optimisation question de rapidité (<> vs not)


Sujet :

Langage Delphi

  1. #1
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut optimisation question de rapidité (<> vs not)
    Salut;

    J’ai les deux instructions suivantes qui retournent le même résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    btCopier.Enabled := not (tbSource.IsEmpty)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    btCopier.Enabled := (tbSource.IsEmpty <> True)
    Laquelle est la plus rapide?

    Merci.
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 455
    Points : 24 867
    Points
    24 867
    Par défaut
    Ben, ça doit ce jouer à pas grand chose, mais si l'on regarde le code ASM généré tu as dans le premier cas un MOV puis XOR, et dans l'autre CMP puis SENTZ BYTE, cela doit ce jouer à un micro-cyle du processeur, fait un test !
    lance cette opération un milliard de fois, tu verras le temps que ça dure ...

    Je suis souvent à la chasse de la petite bête mais là j'écrit toujours le not, pour une question de lisibilité !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    moi par contre, mais sans avoir trop tripoté, j'écris le <> c'est plus parlant, tant que maTable différente de vide alors mon composant est désactivé.

    je crois c'est plutôt une question d'habitude.
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  4. #4
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    moi aussi je préfére la premiére et je crois même que c'est plus rapide, car c'est un simple xor avec teste de flag z,
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  5. #5
    Membre éclairé Avatar de peter27x
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 029
    Points : 757
    Points
    757
    Par défaut
    ben pour moi aussi la 1ère doit être plus rapide (en théorie), car on lit juste une variable (et on y colle un NOT, ok...), alors que la seconde c'est quand même une comparaison de deux valeurs, dont la première doit être lue dans une variable... bref il me semble que c'est quand même plus lourd.

  6. #6
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut
    1. Le not est plus rapide, et plus lisible
    2. Il faut utiliser le not : faire <> True c'est pas beau, puisque le not existe pour faire ça.
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

Discussions similaires

  1. Question de rapidité
    Par Junior_jef dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 26/06/2007, 15h05
  2. Question de rapidité
    Par marqs dans le forum VB.NET
    Réponses: 1
    Dernier message: 29/03/2007, 15h59
  3. Optimisation..question de prudence
    Par maxtin dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 15/12/2006, 16h15
  4. Question de rapidité
    Par charlito dans le forum 2D
    Réponses: 4
    Dernier message: 14/03/2006, 14h09
  5. Optimisation de mémoire / rapiditée
    Par Zenol dans le forum C++
    Réponses: 9
    Dernier message: 25/09/2005, 11h18

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