Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C#] Utilisation de types nullables

Consommation de ressources

Sujet résolu
    5 février 2012 à 15:38:01

    Bonjour à tous,
    Je développe une application agissant avec une BDD et je vais devoir utiliser des types nullables car toutes les colonnes de mes tables ne sont pas forcément renseignées.
    Je me demandais si l'utilisation d'un type nullable (un int? par exemple) consommait plus de ressources (CPU, RAM) qu'un type classique (un int par exemple) ? Je ne voudrais pas avoir recours à des types nullables si ça alourdit trop mon programme.

    Merci d'avance pour vos avis.
    • Partager sur Facebook
    • Partager sur Twitter
      5 février 2012 à 15:46:39

      D'après un article que j'ai trouvé sur le net, les nullables sont un peu moins performants que les types normaux mais je pense que pour une utilisation normale (pas 1M de trucs non plus hein ;) ) ça devrait aller.
      • Partager sur Facebook
      • Partager sur Twitter
      "Il est impossible pour un homme d'apprendre ce qu'il croit déjà connaître"
        5 février 2012 à 16:33:38

        A terme, la BDD risque être assez lourde et donc l'utilisation des types nullables aussi. Je vais remplir des listes d'objets assez importantes, je ferai sûrement mieux de gérer ça autrement.
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          5 février 2012 à 16:42:23

          Dans la liste des trucs qui impactent les performances, je pense que les nullables doivent venir en centième position...

          Unt type nullable, c'est une classe wrapper autour d'une struct. Les nullables sont bien ancrés dans le framework ; par exemple, quand tu compares un int? à 0, le compilateur insère une condition qui vérifie que l'int? n'est pas null.
          • Partager sur Facebook
          • Partager sur Twitter
            5 février 2012 à 17:04:44

            Je vais prendre un exemple : j'ai une classe contenant (entre autres) un int et un DateTime. A partir d'une BDD, je vais créer une liste contenant une bonne centaine d'instances de cet objet.
            Si dans cet objet, l'utilisation de int? et DateTime? à la place ne risque pas de ralentir les performances ?
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              5 février 2012 à 18:41:08

              Une centaine d'instances ? C'est rien...
              A partir du million, là on peut peut-être commencer à faire ce genre de micro-optimisations.
              Mais dans un langage managé, le compilateur est plus intelligent que toi dans 95% des cas.
              • Partager sur Facebook
              • Partager sur Twitter
                5 février 2012 à 19:25:25

                OK. J'abdique.
                Ce sera des types nullables.
                Merci pour le débat.
                • Partager sur Facebook
                • Partager sur Twitter
                  5 février 2012 à 19:40:34

                  Aucune inquiétude à avoir à ce niveau-là en effet. Il sera beaucoup plus utile de consacrer ton énergie à optimiser tes requêtes SQL et à réduire leur nombre au minimum. ;)
                  • Partager sur Facebook
                  • Partager sur Twitter

                  [C#] Utilisation de types nullables

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown