Y a-t-il un compromis en matière de performance, compromis par rapport à la consommation de mémoire?Est-ce qu'un DataTable consomme plus de mémoire qu'une liste <T>?
Répondre
Oui, absolument un DataTable consomme plus de mémoire qu'une liste. La classe DataTable contient beaucoup d'objets pour les définitions de colonnes, les informations de la table (nom, etc), les collections d'objets lignes, les "tableaux d'éléments" pour chaque ligne (ce qui correspond à la liste), etc. EDIT: En outre, List est plus performant pour ajouter des éléments, faire défiler, etc. (refléter le code pour "Ajouter" pour les listes génériques, et pour les tableaux de données pour voir plus de détails).
Oh oui, c'est gros. Il peut être beaucoup plus efficace que la liste <. Il crée un index pour que les recherches puissent être O (1). Les lignes sont stockées dans un arbre rouge-noir, donc les insertions et les suppressions peuvent être O (log n). Toutes ces opérations sont O (n) pour la liste <>. Pour obtenir ce genre de perf, vous devrez bien choisir vos colonnes et vos requêtes. Même type de considérations qu'une table de base de données normale.