Sdílet prostřednictvím


Výstrahy výkonu

Výstrahy výkonu podporu vysoce výkonných knihoven a aplikací.

V tomto oddíle

Pravidlo

Description

CA1800: Zbytečně přetypovat.

Duplicitní nádech snížení výkonu, zvláště, když v příkazech kompaktní iterace jsou prováděny nádech.

CA1801: Zkontrolujte nevyužité parametry

Podpis metody obsahuje parametr, který není použit v těle metody.

CA1802: Použít literály, případně

Pole je deklarována statické a jen pro čtení (sdílené a ReadOnly v Visual Basic) a je inicializována s hodnotou, která je computable v době kompilace.Hodnota, která je přiřazena cílová pole je computable v době kompilace, změnit const prohlášení (Const v Visual Basic) pole tak, aby hodnota je vypočítávána v době kompilace namísto v době spuštění.

CA1804: Odstranit nepoužívané locals

Místní proměnné a zbytečné přiřazení zvětšit velikost sestavení a snížení výkonu.

CA1806: Ignorování výsledky metody

Nový objekt je vytvořen, ale nikdy použity, je volána metoda, která vytvoří a vrátí nový řetězec a nikdy použit nový řetězec nebo objekt modelu COM (Component) nebo P/vyvolat metodu vrátí kód HRESULT nebo chyba, která nikdy použita.

CA1809: Vyhnout se nadměrnému locals

Společné optimalizace výkonu je uložit hodnotu do registru procesoru místo paměti, která je označována jako "enregistering hodnotu".Chcete-li zvýšit pravděpodobnost, že jsou všechny místní proměnné nejsou, omezte počet místní proměnné 64.

CA1810: Inicializace referenční typ statické pole vložené

Při typ deklaruje explicitní statický konstruktor, kompilátor just-in-time (JIT) přidá kontrolu každé statické metody a instance konstruktor typu zda, dříve nazývaný statický konstruktor.Statický konstruktor kontroly může snížit výkon.

CA1811: Vyhnout zúčtován soukromé kód

Soukromé nebo interní (sestavení úroveň) člen nemá volající sestavení, není vyvolána společného jazykového modulu runtime a není vyvolána delegáta.

CA1812: Vyhnout bez instancí třídy interní

Kód v sestavení není vytvořena instance typu sestavení úroveň.

CA1813: Vyhnout neuzavřených atributy

.NET Framework Knihovna tříd poskytuje metody pro načítání vlastních atributů.Ve výchozím nastavení tyto metody hledání hierarchii dědičnosti atribut.Uzavírání atribut eliminuje hledání prostřednictvím hierarchii dědičnosti a zlepšit výkon.

CA1814: Raději zubaté přes vícedimenzionální pole

Vícenásobné pole je pole, jehož prvky jsou matice.Pole, které tvoří prvky mohou být různých velikostí, které může mít za následek méně nevyužité místo pro některé sady dat.

Rovná se CA1815: Override a operátor rovná se hodnota typů

Pro typy hodnoty zděděných provádění rovná se používá knihovnu odraz a porovnává obsah všech polí.Odraz je výpočetně náročné a porovnání všech polí pro rovnost může být zbytečné.Pokud očekáváte uživatelům porovnat nebo seřadit instancí nebo použít instance jako klíče tabulky hash, by mělo provádět typu hodnota rovná se.

CA1816: GC volání.Funkce SuppressFinalize správně

Metoda, která je implementací Dispose nevyvolá GC.Funkce SuppressFinalize nebo metodu, která není implementace volání Dispose GC.Funkce SuppressFinalize nebo metodu volá GC.Funkce SuppressFinalize a předá něco jiného než to (mne Visual Basic).

CA1819: Vlastnosti by není vrátí matice

Matice, které jsou vráceny vlastnosti nejsou chráněna proti zápisu, i když je vlastnost pouze pro čtení.Chcete-li zachovat osvědčenou pole vlastnost musí vrátit kopii pole.Uživatelé obvykle není rozumět výkonu nepříznivé důsledky volání těchto vlastností.

CA1820: Test prázdné řetězce pomocí délka řetězce

Pomocí vlastnosti String.Length nebo String.IsNullOrEmpty metoda je výrazně rychlejší než použití se rovná porovnávání řetězců.

CA1821: Odebrat prázdné finalizačních metod

Kdykoli je to možné, vyhněte se finalizačních metod z důvodu další režii související se sledování životnost objektu.Poněkud prázdný finalizačních metod přidán režie bez žádné výhody.

CA1822: Označit jako statické členy

Členy, kteří nemají přístup k instanci dat nebo volání metody instance může být označen jako statické (sdílené v Visual Basic).Po označení jako statické metody bude Kompilátor generuje nonvirtual volání serverů do těchto členů.To vám může poskytnout měřitelné výkonu zisku pro výkon citlivé kód.

CA1823: Vyhnout nepoužité pole private

Pole Private byly zjištěny, nezobrazí přístupná v sestavení.

CA1824: Značka sestav s NeutralResourcesLanguageAttribute

Atribut NeutralResourcesLanguage informuje ResourceManager jazyka, který byl použit k zobrazení prostředků neutrální kultury pro sestavení.To zlepšuje výkon vyhledávání pro první zdroj můžete načíst a může snížit pracovní sady.