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

EDI/Outils Discussion :

Optimisation sur les méthodes vides ?


Sujet :

EDI/Outils

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 8
    Par défaut Optimisation sur les méthodes vides ?
    Bonjour à tous,

    Ma question peut paraître stupide, mais est-il possible de faire que le compilateur supprime les méthodes vides et leurs appels, dans le code généré, comme un compilateur C++ peut le faire ?

    J'ai regardé un peu les options dans Visual Studio et les options du compilateur en ligne de commande, je n'ai rien trouvé...

    Pourquoi me demanderez-vous ? Dans mon cas c'est par exemple un logger fait maison. Je voudrais qu'il ne soit actif qu'en mode Debug.
    Voulant éviter de mettre des #if DEBUG un peu partout dans mon code je procède ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    #if DEBUG
     
    public sealed class LogWriter
    {
      // [...]
     
      public Info(string messageFormat, params object[] args)
      {
        this.writer.Write(messageFormat, args);
      }
     
      // [...]
    }
     
    #else
     
    public sealed class LogWriter
    {
     
      // [...]
     
      public Info(string messageFormat, params object[] args) { }
     
      // [...]
    }
     
    #endif
    J'aimerai bien éviter ces appels de méthodes inutiles.

    Meric

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    est-ce que ça en vaut vraiment la peine ?
    Personnellement je n'ai jamais vu une option qui rendait cela possible, mais de toute façon avant d'être exécuté ton code passe par le JIT et une fois compilé je doute que cet appel à une méthode vide soit réellement un soucis question performances ...

  3. #3
    Membre émérite Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Par défaut
    Tu peux utiliser ConditionalAttribute.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 8
    Par défaut
    Merci Neptune, c'est EXACTEMENT ce que je cherchais

Discussions similaires

  1. Erreurs sur les méthodes ApplicationClass et Application
    Par Invité dans le forum Windows Forms
    Réponses: 5
    Dernier message: 29/04/2008, 18h39
  2. Optimisation sur les types.
    Par lfmarante dans le forum C++
    Réponses: 4
    Dernier message: 02/02/2008, 18h15
  3. PDT et autocompletion, liens sur les méthodes
    Par Tanebisse dans le forum Eclipse PHP
    Réponses: 1
    Dernier message: 10/12/2007, 18h34
  4. Question sur les méthodes abstraites
    Par nmathon dans le forum Delphi
    Réponses: 3
    Dernier message: 15/06/2006, 21h30
  5. Filtrer sur les données vides dans un formulaire
    Par jevany dans le forum Access
    Réponses: 7
    Dernier message: 29/05/2006, 09h50

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