2009-09-09 7 views
1

Je travaille actuellement sur une application Web. Je me demandais juste qui a une meilleure performance lorsqu'il est utilisé en tant que DataSource pour dire un contrôle DataGridView ou DropDownList. Je pense que DataTable est plus difficile à créer que si vous l'obtenez à partir d'un DataReader mais si vous avez une couche ORM qui résume l'utilisation de classes DataAccess comme DataReader et la bibliothèque ORM renvoie généralement une liste de tableau. Avec ce cas, la création d'un DataTable est très fastidieuse. Je me demande aussi comment DataSource gère la sélection de DataTextField et DataValueField dans une ArrayList ... Est-ce par réflexion? Si oui, utiliser Reflection serait une diminution de la performance? Mais pour DataTable, il a une méta-donnée complète donc je pense que ce serait plus rapide.Performance Diff à l'aide de DataTable vs ArrayList comme source de données sur ASP .NET

Qu'en pensez-vous?

Répondre

1

Une liste (que j'espère que vous utiliseriez à la place d'une ArrayList) est une structure plus légère qu'un DataTable. Si votre ORM renvoie une ArrayList, cela n'a pas de sens de le convertir en DataTable, puis d'utiliser DataTable en tant que DataSource pour un contrôle. C'est un travail supplémentaire. en général, je voudrais utiliser un DataTable (rempli par un DataAdapter) ou Je voudrais utiliser un ORM, mais pas les deux ensemble. Bien que le DataTable soit "plus lourd" qu'un ArrayList, je doute que la différence soit si importante.

Je ne pense pas que DataSource d'une grille ou un autre contrôle utilise la réflexion soit pour un DataTable ou un ArrayList, et si elle le fait, la réflexion est probablement pas utilisé sur une base ligne par ligne.

3

Vous trouverez probablement que les différences de performances entre les deux sont négligeables. Au lieu de se concentrer sur l'optimisation prématurée, vous devriez vous concentrer sur l'option la plus facile à maintenir et à comprendre.

Questions connexes