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 :

Des techniques d'optimisation du code


Sujet :

Langage Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 210
    Par défaut Des techniques d'optimisation du code
    Bonjour,

    je lance un poste pour reporter toutes les techniques d'optimisation du code en Delphi. C'est a dire tous les trucs et astuces qui peuvent augmenter la vitesse d'execution d'un programme. Par exemple: creer une liste avant la boucle for et non apres..

  2. #2
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    L'idee est bonne sur le papier .. mais j'ai peur que ce post devienne rapidement illisible ....
    le fait que chacun a sa propre vision combiné a la multitude d'idees et astuces qui existent ... le debat risuqe d'etre long .... et de partir dans tous les sens

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 210
    Par défaut
    disons alors les astuces basiques qui prennent peu de place et qui sont tres utiles a savoir, que l'on rencontre tous les jours quoi. Les "trucs" indispensables a savoir..

  4. #4
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    J'invite donc les autres membre a jouer le jeu et a ne pas contredire les propositions sauf si cela s'avere strictement necessaire, afin de concerver une certaine lisibilitée .....


    Bon ben je commence par en citer 2 ou 3 :

    - Tests Securisés :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If 3 = a Then ShowMEssage('a = 3');
    Cette habitude de codage evite la meprise suivante :
    dans les lagage basie sur la syntaxe "C", confondant affectation et test
    Tres pratique quand on passe d'un language a l'autre (C, C++, Java, php => Delphi)

    - Case indexté par des chaines :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Lst := TStringList.Create;
    Lst.add('toto');
    Lst.add('titi');
    Lst.add('tutu');
    Case Lst.IndexOf(S) do
      0 : ShowMEssage('toto');
      1 : ShowMEssage('titi');
      2 : ShowMEssage('tutu');
      End;
    - Clarté de codage des IF :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Begin
    [...]
    If Not Valide Then Exit;
    <Code si Valide=True>
    End;
    au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Begin
    [...]
    If Valide Then
      Begin
      <Code si Valide=True>
      End;
    End;
    (Avis Strictement Personnel)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 210
    Par défaut
    j'ai pas compris le 1er

  6. #6
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    Citation Envoyé par Art19
    j'ai pas compris le 1er
    Le principe est simple.
    En Delphi le "=" est signe d'egalité.
    En C-like programes, c'est signe d'affectation et une instruction renvoie le resultat de l'affectation.

    Donc Quand on change de langages constement, on fait des erreurs du genre :
    Qui a pour effet d'affecter "3" a la variable a et retourne comme resultat 3
    donc ca revient a ecrire :
    3 >=0 donc equivalent a False. ET le test est toujours faux (ou toujours vrai selon la valeur affecter et renvoyée).

    Pour eviter ce probleme, inverser le teste permet de generer une erreur en C-like langages (lvalue non affectable) car on ne peut affecter "a" dans "3" .....
    Cette technique permet de corriger rapidement l'erreur de sasie sans avoir a passer un bon paquet d'heures (jours ?) a chercher d'ou cela peut il venir .....

    J'en ai fait les frais

Discussions similaires

  1. optimisation du code pour des combobox
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 08/03/2008, 13h30
  2. [PHP-JS] Optimisation du code avec des boucles
    Par jiojioforever dans le forum Langage
    Réponses: 3
    Dernier message: 15/06/2007, 16h02
  3. [optimisation de code] des conseils ?
    Par Lady dans le forum Langage
    Réponses: 7
    Dernier message: 07/05/2007, 10h08
  4. Réponses: 8
    Dernier message: 14/09/2006, 16h43
  5. Optimisation du code des ordres SQL
    Par Titouf dans le forum Langage SQL
    Réponses: 1
    Dernier message: 14/08/2005, 22h08

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