Podczas konfigurowania konfiguracji usługi klienta WCF istnieje opcja "typ kolekcji", która domyślnie przyjmuje wartość "System.Array". Jeśli zmienię go na "Ogólną listę", czy występuje jakaś utrata wydajności?Jakiego typu kolekcji powinienem użyć, aby uzyskać najlepszą wydajność?
Odpowiedz
Przez przewód (WCF) nie ma różnicy; te same dane zostaną wysłane.
W przypadku większości scenariuszy klient ma bardzo mało zauważalną wydajność między List<T>
i T[]
. Użyj List<T>
- o wiele łatwiej jest go naprawić (dodając itp.). Jeśli wykonujesz wiele operacji wiązania danych, może być przydatna funkcja BindingList<T>
, ale możesz ograniczyć ją do modelu widoku, a nie obiektu biznesowego. To ma mają dodatkowe koszty (z wydarzeń itp.).
Edit: największa „cost performance” będzie czas poświęcany walczyć to do dodawania elementów do tablic (ze zmianą rozmiaru, a koszt nie-z); więc przeskocz do List<T>
i uśmiechnij się ;-p
Lista jest w zasadzie Array z niektórymi metodami zarządzania, dbanie o zmianę rozmiaru. To jest obciążenie ogólne. – Dykam
Ale to "obciążenie" może być również błogosławieństwem, jeśli dodajesz kolejne elementy, ponieważ domyślnie pozostawia wolną pojemność (podwojenie). –
wypróbuj? – jalf