Condividi tramite


Suggerimenti sulle prestazioni .NET

Il termine prestazioni in genere si riferisce alla velocità di esecuzione di un programma. A volte è possibile aumentare la velocità di esecuzione seguendo determinate regole di base nel codice sorgente. In alcuni programmi, è importante esaminare attentamente il codice e usare i profiler per assicurarsi che sia in esecuzione il più velocemente possibile. In altri programmi, non è necessario eseguire tale ottimizzazione perché il codice è in esecuzione in modo accettabile come viene scritto. Questo articolo elenca alcune aree comuni in cui le prestazioni possono risentire e suggerimenti per migliorarlo, nonché collegamenti ad argomenti aggiuntivi sulle prestazioni. Per altre informazioni sulla pianificazione e la misurazione delle prestazioni, vedere Prestazioni

Boxing e unboxing

È consigliabile evitare di usare tipi valore in situazioni in cui devono essere sottoposti a boxing un numero elevato di volte, ad esempio nelle classi di raccolte non generiche come System.Collections.ArrayList. È possibile evitare il boxing dei tipi valore usando raccolte generiche come System.Collections.Generic.List<T>. Il boxing e l'unboxing sono processi computazionalmente costosi. Quando un tipo di valore viene sottoposto a boxing, è necessario creare un oggetto completamente nuovo. Questa operazione può richiedere fino a 20 volte più di un'assegnazione di riferimento semplice. Durante l'unboxing, il processo di selezione può richiedere quattro volte il tempo di un'assegnazione. Per altre informazioni, vedere Boxing e Unboxing.

Stringhe

Quando si concatena un numero elevato di variabili stringa, ad esempio in un ciclo stretto, usare System.Text.StringBuilder anziché l'operatore C# + o gli operatori di concatenazione di Visual Basic. Per altre informazioni, vedere Come concatenare più stringhe e operatori di concatenazione in Visual Basic.

Finalizzatori

I finalizzatori vuoti non devono essere usati. Quando una classe contiene un finalizzatore, viene creata una voce nella coda Finalize. Quando viene chiamato il finalizzatore, il Garbage Collector viene richiamato per elaborare la coda. Se il finalizzatore è vuoto, ciò comporta semplicemente una perdita di prestazioni. Per altre informazioni, vedere Finalizzatori e durata degli oggetti: creazione e eliminazione definitiva degli oggetti.

Altre risorse

Vedere anche