Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 24478|Odgovoriti: 2

[Vir] Optimizacija zmogljivosti v C#: Lazy inicializira lazy z <T>zamikom

[Kopiraj povezavo]
Objavljeno na 17. 06. 2019 16:17:17 | | | |
1. Pregled

Ustvarjanje objekta zahteva veliko porabe in ta objekt morda ne bo uporabljen med izvajanjem, zato, da se izognemo vsakičnemu ustvarjanju objekta, pride v poštev lenobna inicializacija (imenovana tudi lenobna instanca).

Zakasnjena inicializacija se zgodi v . NET 4.0, ki se uporablja predvsem za izboljšanje zmogljivosti, preprečevanje nepotrebnega računanja in zmanjšanje zahtev po programskem pomnilniku. Lahko se imenuje tudi nalaganje na zahtevo.

2. Osnovna slovnica


3. Implementirajte z zgledi

Začnite z ustvarjanjem študentskega razreda z naslednjo kodo:

Ustvarite konzolni program z naslednjo kodo:

Po nastavitvi točke prekinitve za odpravljanje napak sem ugotovil, da je po novem preverjanju vrednost Studentove IsValueCreated napačna, vrednost vrednosti pa ničelna



Nato, ko kličemo lastnost Name, je vrednost študentovega IsValueCreated resnična, vrednost vrednosti pa ni več ničelna



Rezultat teka:



Vidimo lahko, da se Student inicializira šele, ko je atribut Name izhoden, torej je inicializiran ob prvi uporabi, da se doseže namen zmanjšanja porabe.

Ta primer je preprost in <T>najbolj osnovni način uporabe Lazy. Uporabimo lahko tudi<T> Lazyjevo funkcijo preobremenitve, Lazy<T> (Func<T>), da posredujemo delegata z vrnjeno vrednostjo, da nastavimo vrednost lastnosti objekta za inicializacijo lazy.

Rezultat teka:



Opomba:<T> inicializacija lenobnega objekta je privzeto varna za niti in v večnitnem okolju bo prva nit, ki dostopa do<T> lastnosti Vrednost lenega objekta, inicializirala objekt Lazy<T>, naslednje dostopne niti pa bodo prvič uporabile inicializirane podatke.

4. Scenariji uporabe

Obstaja objekt, ki ima veliko režijskih stroškov za ustvarjanje, program pa ga morda ne bo uporabil. Na primer, predpostavimo, da vaš program ob zagonu naloži več primerkov objektov, vendar je treba takoj zagnati le nekaj primerkov. Zagonsko zmogljivost programa lahko izboljšate tako, da inicializacijo nepotrebnih objektov odložite, dokler niso potrebni objekti ustvarjeni.






Prejšnji:Razkrijte nekaj resnic o intervjuju
Naslednji:Uporabniški priročnik za testno orodje JCSHELL
Objavljeno na 18. 06. 2019 18:18:32 |
No, razumem
 Najemodajalec| Objavljeno na 4. 07. 2023 19:19:55 |
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com