Le prestazioni di System.Diagnostics.StackFrame si riducono in Windows 10 Risolvi il tuo …

Se dopo l’aggiornamento a Windows 10 o .NET Framework 4.7.1e notare una significativa diminuzione delle prestazioni durante la corsa .NETTO App Frame che utilizzano System.Diagnostics.StackFrame class, allora questo post potrebbe interessarti. Analizzeremo la causa e quindi offriremo soluzioni note all’errore.

Riduzione delle prestazioni di System.Diagnostics.StackFrame

Riduzione delle prestazioni di System.Diagnostics.StackFrame

Un’applicazione con prestazioni accettabili in esecuzione su .NET Framework 4.7 o versioni precedenti viene eseguita più lentamente quando viene eseguita su .NET Framework 4.7.1. Le applicazioni generalmente si basano su StackFrame quando generano eccezioni .NET. Se ciò si verifica a una velocità elevata (più di 10 incidenti al secondo), le applicazioni possono rallentare in modo significativo (dieci volte) ed essere eseguite notevolmente più lentamente di prima.

Causa del degrado delle prestazioni di System.Diagnostics.StackFrame

.NET Framework 4.7.1 in Windows 10 ha aggiunto il supporto per il rilevamento e l’analisi del formato di file PDB portatile per visualizzare le informazioni sui file e sul numero di riga nelle tracce dello stack. Come parte di questa modifica, ogni funzione in un’analisi dello stack ha il suo modulo di definizione controllato per determinare se quel modulo utilizza il formato PDB portatile. A causa di alcune differenze nei criteri di memorizzazione nella cache interna, il runtime impiega molto più tempo a cercare PDB portatili rispetto alle versioni precedenti di .NET Framework dedicate alla ricerca nei classici PDB di Windows.

Ciò fa sì che le analisi dello stack formattate si verifichino più lentamente di prima.

Questo problema non modifica il numero di eccezioni generate. Tuttavia, riduce notevolmente la capacità delle applicazioni di gestire queste eccezioni.

È noto che le applicazioni che utilizzano la libreria IKVM sono interessate da questo problema se cercano assembly. È noto che il polling degli assembly causa eccezioni.

Risolto il problema di riduzione delle prestazioni di System.Diagnostics.StackFrame

Per risolvere questo problema, Microsoft consiglia di utilizzare uno dei seguenti metodi.

leggere  Twitch hackerato, l'azienda consiglia di reimpostare immediatamente le password

1]Utilizza un costruttore diverso per StackFrame che accetta un argomento booleano

Questa è la soluzione preferita.

Se gli sviluppatori di app possono apportare modifiche alle loro app, Chiama a System.Diagnostics.StackTrace. # Costruttore Ctor (booleano) che utilizza un argomento falso per evitare di acquisire le informazioni sull’origine. Ciò evita la sezione di codice in cui le prestazioni sono ridotte.

2]Eseguire il rollback o l’aggiornamento alla versione più recente di Windows 10

In questo metodo, ripristina la versione / build precedente o esegui l’aggiornamento alla versione / build più recente di Windows 10 se hai questo problema e non stai eseguendo l’ultima versione di Windows 10. Disinstalla anche .NET Framework 4.7 .1 se presente, dal tuo computer e poi scaricare e installare una versione precedente o l’ultima versione di .NET Framework.

Spero che questo aiuti!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *