Regole di prestazioni per l'utilizzo di .NET Framework
Le regole delle prestazioni nella categoria di utilizzo di .NET Framework identificano metodi specifici che è possibile ottimizzare nonché modelli di utilizzo più generali, quali Garbage Collection e conflitti di blocco, che è possibile analizzare per individuare problemi di prestazioni.
Le chiamate a String.Concat(String, String) sono una percentuale significativa dei dati di profilatura.Considerare l'utilizzo della classe StringBuilder per costruire stringhe da più segmenti. |
|
Un numero relativamente elevato di oggetti di memoria .NET viene recuperato in un'operazione di Garbage Collection di generazione 2.Se troppi oggetti di breve durata vengono conservati dopo la Garbage Collection di generazione 1, il costo di gestione della memoria può facilmente divenire eccessivo. |
|
DA0006: Eseguire l'override di Equals() per i tipi di valore |
Le chiamate al metodo Equals o agli operatori di uguaglianza di un tipo di valore pubblico sono una percentuale significativa dei dati di profilatura.Considerare l'implementazione di un metodo più efficiente. |
DA0007: Evitare di utilizzare eccezioni per il flusso di controllo |
Nei dati di profilatura sono stati chiamati gestori di eccezioni .NET Framework con una frequenza elevata.Considerare l'utilizzo di un'altra logica del flusso di controllo per ridurre il numero di eccezioni generate. |
Le chiamate al metodo GetHashCode del tipo costituiscono una percentuale significativa dei dati di profilatura oppure il metodo GetHashCode alloca memoria.Ridurre la complessità del metodo. |
|
Il metodo CompareTo del tipo è dispendioso o alloca memoria.Ridurre la complessità del metodo CompareTo. |
|
Le chiamate ai metodi System.Reflection quali InvokeMember e GetMember o ai metodi di tipo quali InvokeMember costituiscono una percentuale significativa dei dati di profilatura.Quando è possibile, considerare la possibilità di sostituire questi metodi con associazione anticipata ai metodi di assembly dipendenti. |
|
Le chiamate ai metodi String.Split o Substring costituiscono una percentuale significativa dei dati di profilatura.Se si sta verificando l'esistenza di una sottostringa in una stringa, considerare l'utilizzo di IndexOf o IndexOfAny. |
|
DA0018: Applicazione a 32 bit in esecuzione al limite di memoria gestito dal processo |
I dati di sistema raccolti durante l'esecuzione della profilatura indicano che gli heap di memoria di .NET Framework hanno quasi raggiunto la dimensione massima consentita per gli heap gestiti in un processo a 32 bit.Considerare la possibilità di eseguire di nuovo la profilatura utilizzando il metodo di profilatura della memoria di .NET e ottimizzare l'utilizzo delle risorse gestite dall'applicazione. |
DA0021: Frequenza elevata di Garbage Collection di generazione 1 |
Un numero relativamente elevato di oggetti di memoria .NET viene recuperato in un'operazione di Garbage Collection di generazione 1.Se troppi oggetti di breve durata vengono conservati dopo la Garbage Collection di generazione 0, il costo di gestione della memoria può facilmente divenire eccessivo. |
DA0022: Frequenza elevata di Garbage Collection di generazione 2 |
Un numero elevato di oggetti di memoria .NET viene recuperato in un'operazione di Garbage Collection di generazione 2.Se troppi oggetti di breve durata vengono conservati dopo la Garbage Collection di generazione 1, il costo di gestione della memoria può facilmente divenire eccessivo.Questa regola viene attivata quando la frequenza di conflitti di blocco supera il valore soglia superiore della regola DA0005. |
I dati relativi alle prestazioni del sistema raccolti durante la profilatura indicano che la quantità di tempo impiegato nell'operazione di Garbage Collection è significativa rispetto al tempo di elaborazione totale dell'applicazione. |
|
I dati relativi alle prestazioni di sistema raccolti durante la profilatura indicano che la quantità di tempo impiegato nell'operazione di Garbage Collection risulta eccessivamente alta rispetto al tempo di elaborazione totale dell'applicazione.Questa regola viene attivata quando la quantità di tempo impiegata per l'operazione di Garbage Collection supera il valore soglia superiore della regola DA0023. |
|
I dati relativi alle prestazioni di sistema raccolti con i dati di profilatura indicano che si è verificata una frequenza significativamente elevata di conflitti di blocco durante l'esecuzione dell'applicazione.Considerare la possibilità di eseguire di nuovo la profilatura utilizzando il metodo di profilatura della concorrenza per individuare la causa dei conflitti. |
|
I dati relativi alle prestazioni di sistema raccolti con i dati di profilatura indicano che si è verificata una frequenza eccessivamente elevata di conflitti di blocco durante l'esecuzione dell'applicazione.Considerare la possibilità di eseguire di nuovo la profilatura utilizzando il metodo di profilatura della concorrenza per individuare la causa dei conflitti.Questa regola viene attivata quando la frequenza di conflitti di blocco supera il valore soglia superiore della regola DA0038. |