Sdílet prostřednictvím


Tipy pro zvýšení výkonu .NET

Termín výkon obecně označuje rychlost provádění programu. Rychlost provádění můžete někdy zvýšit pomocí určitých základních pravidel ve zdrojovém kódu. V některých programech je důležité pečlivě prozkoumat kód a používat profilátory, abyste měli jistotu, že běží co nejrychleji. V jiných programech nemusíte takovou optimalizaci provádět, protože kód běží přijatelně rychle, jak je napsaný. Tento článek uvádí některé běžné oblasti, ve kterých může výkon trpět, a tipy pro vylepšení a také odkazy na další témata týkající se výkonu. Další informace o plánování a měření výkonu naleznete v tématu Výkon

Boxování a unboxování

Nejlepší je vyhnout se použití hodnotových typů v situacích, kdy je nutné je mnohokrát zabalit, například v jiných než obecných třídách kolekcí, jako System.Collections.ArrayList. Vyhnout se vložení hodnotových typů můžete použitím obecných kolekcí, jako je System.Collections.Generic.List<T>. Boxing a také unboxing jsou procesy nákladné na výpočetní výkon. Pokud je typ hodnoty v rámečku, musí být vytvořen zcela nový objekt. To může trvat až 20krát déle než jednoduché přiřazení odkazu. Při rozbalování může proces lití trvat čtyřikrát déle než přiřazení. Další informace naleznete v tématu Boxing and Unboxing.

Řetězce

Při zřetězení velkého počtu řetězcových proměnných, například v těsné smyčce, použijte System.Text.StringBuilder místo operátoru C# + nebo operátory zřetězení jazyka Visual Basic. Další informace naleznete v tématu Jak zřetězit více řetězců a v tématu Operátory zřetězení ve Visual Basicu.

Finalizátory

Prázdné finalizační metody by neměly být použity. Pokud třída obsahuje finalizátor, položka je vytvořena ve čekací frontě Finalize. Při zavolání finalizátoru se vyvolá sběrač paměti k zpracování fronty. Pokud je finalizátor prázdný, jednoduše dojde ke ztrátě výkonu. Pro více informací viz Finalizers a Object Lifetime: How Objects Are Created and Destroyed.

Další zdroje informací

Viz také