Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 3028|Atsakyti: 0

[Šaltinis] .NET/C# rinkinys Any() arba Count(), kuris yra greitesnis

[Kopijuoti nuorodą]
Paskelbta 2023-06-28 19:34:31 | | | |
Reikalavimai: Neseniai mano kolegos projekto komandoje pakeitė duomenų skaičių () > 0 į Bet koks (), kad nuspręstų, ar rinkinyje yra duomenų (ne IQueryble užklausų duomenų bazė), ir tada paklausė, kodėl jis buvo pakeistas (optimizuotas), bet atsakymo nebuvo.

Naudokite etalonus, kad palygintumėte, kuris iš šių Any() ir Count() yra greitesnis.

Pradėkime nuo išvados (.NET Framwork):Count > Any() > Count().NET 6 "Count() ir Any() našumas nedaug skiriasi, bet vis tiekAny() rekomenduojama rinkti, ar yra duomenų

Bandymo kodas yra toks:


.NET Framework 4.8.1Lyginamieji duomenys yra tokie:



.NET 6Lyginamieji duomenys yra tokie:



Ar nesakėte, kad .NET Framwork Any() > Count() našumas? Kodėl Count() yra greitesnis už List? Priežastis ta, kad pagrindinis sąrašo metodas Count() iškviečia lauką Count, kaip parodyta paveikslėlyje žemiau:




(Pabaiga)





Ankstesnis:.NET/C# metodo parametras NULL null
Kitą:ASP.NET skirtumas tarp "ThreadStatic", "CallContext" ir "HttpContext"
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com