Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 24478|Odpověď: 2

[Zdroj] Optimalizace výkonu v C#: Lazy inicializuje lazy s <T>prodlevou

[Kopírovat odkaz]
Zveřejněno 17.06.2019 16:17:17 | | | |
1. Přehled

Vytvoření objektu vyžaduje hodně spotřeby a tento objekt nemusí být během běhu použit, takže aby se zabránilo jeho vytváření pokaždé, je potřeba líná inicializace (také nazývaná líná instance).

Zpožděná inicializace probíhá v . NET 4.0, který se primárně používá ke zlepšení výkonu, předcházení plýtvání výpočtem a snížení požadavků na paměť programu. Může být také nazýván načítáním na vyžádání.

2. Základní gramatika


3. Implementujte s příklady

Začněte vytvořením třídy Student s následujícím kódem:

Vytvořte konzolový program s následujícím kódem:

Po nastavení breakpointu pro ladění jsem zjistil, že po novém nastavení byla hodnota Student's IsValueCreated nepravdivá a hodnota hodnoty nulová



Pak, při volání vlastnosti Jméno, hodnota studentova IsValueCreated je pravdivá a hodnota hodnoty již není nulová



Výsledek běhu:



Je vidět, že Student je inicializován pouze tehdy, když je atribut Name vytištěn, tedy při prvním použití, aby se dosáhlo cíle snížení spotřeby.

Tento příklad je jednoduchý a <T>nejzákladnější způsob, jak použít Lazy. Můžeme také použít<T> Lazyho přetížení Lazy<T> (Funkc<T>), abychom předali delegáta s vrácenou hodnotou pro nastavení vlastnosti objektu lazy inicializace.

Výsledek běhu:



Poznámka:<T> Inicializace Lazy objektů je ve výchozím nastavení bezpečná pro vlákna a v prostředí s více vlákny inicializuje první vlákno, které přistupuje k<T> vlastnosti Hodnota objektu Lazy<T>, a následující přístupová vlákna použijí data inicializovaná poprvé.

4. Scénáře použití

Existuje objekt, který má velkou režii k vytvoření, a program ho nemusí použít. Například předpokládejme, že váš program při spuštění načte několik instancí objektů, ale jen několik z nich je potřeba spustit okamžitě. Výkon při startu programu můžete zlepšit tím, že inicializaci zbytečných objektů zpozdíte až do doby, kdy jsou potřebné objekty vytvořeny.






Předchozí:Odhalte několik pravd o rozhovoru
Další:Uživatelský manuál pro testovací nástroj JCSHELL
Zveřejněno 18.06.2019 18:18:32 |
Tak jo, chápu
 Pronajímatel| Zveřejněno 04.07.2023 19:19:55 |
Jak Lazy v C# chrání vlákna
https://www.itsvse.com/thread-10621-1-1.html
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com