Výkon Diff o používání DataTable vs ArrayList jako zdroj dat v ASP .NET

hlasů
1

Já jsem v současné době pracuje na webové aplikace. Jen by mě zajímalo, která má lepší výkon při použití jako zdroj dat pro říci DataGridView nebo ovládací prvek DropDownList.

Domnívám se, že DataTable je těžší vytvořit, pokud jste si ji z objektu DataReader, ale pokud máte ORM vrstvu, která abstraktní použití DataAccess tříd jako DataReader a knihovně ORM obvykle vrátí seznam pole. S tímto případem vytváří DataTable je velmi únavné. Jsem zvědav, i to, jak DataSource zpracovává zvolením z DataTextField a DataValueField v ArrayList ... Je to pomocí odrazu? Pokud tomu tak je pomocí reflexe by snížení výkonu? Ale pro DataTable, že má k dispozici kompletní meta-data, takže si myslím, že to bude rychlejší.

Co myslíš?

Položena 09/09/2009 v 01:39
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
3

Pravděpodobně zjistíte výkonnostní rozdíly jsou buď zanedbatelné. Místo toho se zaměřuje na předčasné optimalizace byste se měli zaměřit na možnosti, které je nejsnazší k udržení a pochopit.

Odpovězeno 09/09/2009 v 01:45
zdroj uživatelem

hlasů
1

A Seznam (což doufám, že byste použít namísto ArrayList) je struktura lehčí než DataTable. Pokud je vaše ORM vrací ArrayList, pak to nemá moc smysl, aby jej převést na DataTable a pak použít tento DataTable jako zdroj dat pro ovládací prvek. To je práce navíc; Obecně platí, že by se použiji DataTable (naplněnou prostřednictvím DataAdapter) nebo bych použít ORM, ale ne obojí současně. Přestože je DataTable je „těžší“ než ArrayList, Pochybuji, že rozdíl je vše, co významné.

Nemyslím si, že DataSource z mřížky nebo jiného ovládacího prvku používá odraz buď DataTable nebo ArrayList, a pokud ano, Reflection pravděpodobně není používán na řádku po řádce bázi.

Odpovězeno 09/09/2009 v 02:07
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more