Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 3028|Válasz: 0

[Forrás] .NET/C# gyűjtemény Any() vagy Count() esetén, ami gyorsabb

[Linket másol]
Közzétéve 2023. 06. 28. 19:34:31 | | | |
Követelmények: Nemrégiben a projektcsapat kollégái módosították az adatszám() > 0-t any()-ra, hogy megítélje, van-e adat a gyűjteményben (nem az IQueryble lekérdezési adatbázisban), majd megkérdezték, miért változtatták meg (optimalizálták), de nem kaptak választ.

Használj benchmarkokat, hogy összehasonlítsuk, melyik a következő Any() és Count() gyorsabb.

Kezdjük a következtetéssel (.NET Framwork-ben):Count > Any() > Count()A .NET 6-ban a Count() és Any() teljesítmény nem sokban különbözik, de mégisAny() ajánlott az adatok gyűjtéséhez

A tesztkód a következő:


.NET Framework 4.8.1A benchmark adatok a következők:



.NET 6A benchmark adatok a következők:



Nem ezt mondtad a .NET Framwork Any() > Count() teljesítményben? Miért gyorsabb a Count() a Listnál? Ennek oka, hogy a Lista mögöttes Count() módszere hívja a Count mezőt, ahogy az alábbi ábrán látható:




(Vége)





Előző:.NET/C# metétus paraméter NULL null
Következő:ASP.NET a különbség a ThreadStatic, a CallContext és a HttpContext között
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com