Condividi tramite


Regole di prestazioni in base all'ID

Avviso

Descrizione

DA0001: Utilizzare StringBuilder per le concatenazioni

Le chiamate a System.String.Concat sono una percentuale significativa dei dati di profilatura. Considerare l'utilizzo della classe StringBuilder per costruire stringhe da più segmenti.

DA0002: VSPerfCorProf.dll mancante

Il profiler non ha trovato VSPerfCorProf.dll durante l'esecuzione del profilo. Questo avviso si verifica quando gli strumenti da riga di comando per l'insieme di dati del profiler vengono utilizzati senza lo strumento VSPerfCLREnv.cmd per inizializzare le variabili di ambiente necessarie.

DA0003: Numero elevato di campioni del kernel

Una percentuale significativa dei campioni dello stack di chiamate raccolti per l'applicazione erano in esecuzione in modalità kernel. Considerare la possibilità di profilare l'applicazione tramite un metodo di profilatura diverso.

DA0004: Utilizzo elevato del processore

L'utilizzo del processore (CPU) è significativamente elevato nei dati di profilatura raccolti utilizzando il metodo di strumentazione. Considerare l'utilizzo del metodo di profilatura del campionamento per profilare applicazioni associate alla CPU.

DA0005: Insiemi GC2 frequenti

Un numero elevato di oggetti di memoria .NET viene recuperato in un'operazione di Garbage Collection di generazione 2.

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.

DA0008: Numero ridotto di campioni raccolti

Solo alcuni campioni sono stati raccolti nell'esecuzione del profilo. Considerare un'esecuzione più lunga o una frequenza di campionamento più veloce per ottenere risultati più significativi.

DA0009: Percentuale tempo in JIT elevata

Una percentuale significativa del tempo di esecuzione dell'applicazione è stata utilizzata dal compilatore JIT.

DA0010: Funzione GetHashCode dispendiosa

Le chiamate al metodo GetHashCode del tipo costituiscono una percentuale significativa dei dati di profilatura oppure il metodo alloca memoria.

DA0011: Funzione compareTo dispendiosa

Il metodo CompareTo del tipo è dispendioso o alloca memoria.

DA0012: Utilizzo elevato della reflection

Le chiamate ai metodi System.Reflection, ad esempio InvokeMember e GetMember, o ai metodi Type, ad esempio MemberInvoke, 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.

DA0013: Utilizzo elevato di String.Split/String.Substring

Le chiamate ai metodi System.String.Split o System.String.Substring costituiscono una parte significativa dei dati di profilatura. Considerare l'utilizzo di System.String.IndexOf o System.String.IndexOfAny se si sta verificando l'esistenza di una sottostringa in una stringa.

DA0014: Frequenze molto elevate di paging di memoria attiva su disco

I dati relativi alle prestazioni di sistema raccolti nell'esecuzione della profilatura indicano che si è verificata una frequenza estremamente elevata di paging di memoria attiva da e su disco durante la profilatura. Le frequenze di paging a questo livello avranno solitamente un impatto sulle prestazioni e sulla velocità di risposta dell'applicazione. Considerare la possibilità di ridurre le allocazioni di memoria rivedendo gli algoritmi. Potrebbe inoltre essere necessario considerare i requisiti di memoria dell'applicazione, ripetendo l'esecuzione della profilatura su un computer con una maggiore quantità di memoria.

DA0017: Frequenze elevate di paging di memoria attiva su disco

I dati relativi alle prestazioni di sistema raccolti nell'esecuzione della profilatura indicano che si è verificata una frequenza elevata di paging di memoria attiva da e su disco durante la profilatura. Le frequenze di paging a questo livello avranno solitamente un impatto sulle prestazioni e sulla velocità di risposta dell'applicazione. Considerare la possibilità di ridurre le allocazioni di memoria rivedendo gli algoritmi. Potrebbe inoltre essere necessario considerare i requisiti di memoria dell'applicazione, ripetendo l'esecuzione della profilatura su un computer con una maggiore quantità di memoria.

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. Il valore indicato è il massimo valore degli heap osservato durante l'attività del processo profilato. Considerare la possibilità di ottimizzare l'utilizzo delle risorse di memoria gestita da parte dell'applicazione.

DA0021: Frequenza elevata di Garbage Collection di generazione 1

I dati relativi alle prestazioni di sistema raccolti durante la profilatura indicano che una percentuale significativa della memoria per oggetti .NET Framework è stata recuperata nell'operazione di Garbage Collection di generazione 1 rispetto alla raccolta dei dati di generazione 0.

DA0022: Frequenza elevata di Garbage Collection di generazione 2

I dati relativi alle prestazioni di sistema raccolti durante la profilatura indicano che una percentuale significativa della memoria per oggetti .NET Framework è stata recuperata nell'operazione di Garbage Collection di generazione 2 rispetto alle operazioni di Garbage Collection di generazione 0 e generazione 1.

DA0024: Tempo CPU GC elevato

I dati relativi alle prestazioni di 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.

DA0024: Tempo CPU GC eccessivo

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.

DA0026: Tempo di elaborazione CPU kernel eccessivo

Il tempo CPU proporzionale eseguito in modalità kernel ha superato la quantità di tempo trascorso in modalità utente. Per determinare la causa degli elevati tempi di esecuzione in modalità kernel, eseguire di nuovo la profilatura e abilitare al campionamento del numero di chiamate di sistema (syscalls).

DA0029: Versione CLR non supportata

Si sta tentando di profilare un'applicazione che utilizza .NET Framework versione 1.1, che non è supportata dagli strumenti di profilatura.

DA0030: Raccogli misurazioni di interazione tra livelli per i progetti di database

Le chiamate ai metodi System.Data costituiscono una percentuale significativa dei dati di profilatura e non sono stati raccolti dati di interazione tra livelli nell'esecuzione della profilatura. Considerare la possibilità di ripetere la profilatura e di aggiungere dati di interazione tra livelli.

DA0038: Frequenza elevata di conflitti di blocco

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.

DA0039: Frequenza molto elevata di conflitti di blocco

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 del conflitto.

DA0501: Consumo medio CPU del processo sottoposto a profilatura.

In questo messaggio viene indicata la percentuale di tempo impiegato da un processore per l'esecuzione di istruzioni dall'applicazione. Il valore indicato è il valore medio fra tutti gli intervalli di misurazione nei quali il processo profilato era attivo. Il valore può essere maggiore di 100% su un computer con più di un processore.

DA0502: Consumo massimo CPU del processo sottoposto a profilatura

In questo messaggio viene indicata la percentuale massima di tempo impiegato da un processore per l'esecuzione di istruzioni dall'applicazione. Il valore indicato è il valore massimo segnalato fra tutti gli intervalli di misurazione nei quali il processo profilato era attivo. La percentuale può essere maggiore di 100% su un computer con più di un processore.

DA0503: Working set medio in byte del processo sottoposto a profilatura

Questo messaggio indica la quantità media di memoria fisica, in byte, utilizzata attualmente dal processo espressa in byte (il working set). Il working set del processo rappresenta pagine dallo spazio degli indirizzi del processo che attualmente risiedono nella memoria fisica.

DA0504: Working set massimo in byte del processo sottoposto a profilatura

Questo messaggio indica la quantità massima di memoria fisica, in byte, utilizzata attualmente dal processo. Il working set del processo rappresenta pagine dallo spazio degli indirizzi del processo che attualmente risiedono nella memoria fisica. Questa regola indica il valore massimo per il working set del processo mentre la profilatura era attiva.

DA0505: Byte privati medi allocati per il processo sottoposto a profilatura

Questo messaggio indica la quantità media di memoria virtuale che il processo ha attualmente allocato in byte (byte privati). I byte privati rappresentano percorsi di memoria virtuale allocati dal processo al quale possono accedere solo thread in esecuzione all'interno del processo.

DA0506: Byte privati massimi allocati per il processo sottoposto a profilatura

Questo messaggio indica la quantità massima di memoria virtuale che il processo ha attualmente allocato in byte (byte privati). I byte privati rappresentano percorsi di memoria virtuale allocati dal processo al quale possono accedere solo thread in esecuzione all'interno del processo.