.NETTO

Sistema.Diagnostica.Le prestazioni di StackFrame diminuiscono in Windows 10

Sistema.Diagnostica.Le prestazioni di StackFrame diminuiscono in Windows 10

Se dopo l'aggiornamento a Windows 10 o .NET Framework 4.7.1 e si nota una significativa diminuzione delle prestazioni durante l'esecuzione .NET Framework che utilizzano il Sistema.Diagnostica.StackFrame classe, allora questo post potrebbe interessarti. Esamineremo la causa e quindi offriremo correzioni note per l'errore.

Sistema.Diagnostica.Degrado delle prestazioni di StackFrame

Un'applicazione con prestazioni accettabili in esecuzione sul .NET Framework 4.7 o versioni precedenti vengono eseguite più lentamente durante l'esecuzione su .NET Framework 4.7.1. Le applicazioni in genere si affidano a StackFrame quando lanciano .Eccezioni NET. Se ciò si verifica a una velocità elevata (più di 10 incidenti al secondo), le applicazioni possono rallentare significativamente (dieci volte) e funzionare notevolmente più lentamente di prima.

Causa del sistema.Diagnostica.Degrado delle prestazioni di StackFrame

Il .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 mostrare le informazioni sul file e sul numero di riga nelle tracce dello stack. Come parte di questa modifica, ogni funzione in una traccia dello stack ha il suo modulo di definizione controllato per determinare se quel modulo utilizza il formato PDB portatile. A causa di alcune differenze nella politica di memorizzazione nella cache interna, il runtime impiega molto più tempo a cercare PDB portatili rispetto al precedente .NET Framework passate alla ricerca di PDB Windows classici.

Ciò fa sì che le tracce dello stack formattate vengano prodotte più lentamente di prima.

Questo problema non cambia il numero di eccezioni che vengono generate. Tuttavia, riduce significativamente la capacità delle applicazioni di gestire tali eccezioni.

È noto che le applicazioni che utilizzano la libreria IKVM sono interessate da questo problema se rilevano gli assiemi. È noto che la verifica degli assembly causa eccezioni.

Sistema di correzione.Diagnostica.Problema di degradazione delle prestazioni di StackFrame

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

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

Questa è la soluzione preferita.

Se gli sviluppatori di applicazioni sono in grado di apportare modifiche alle loro applicazioni, chiama il Sistema.Diagnostica.StackTrace.#ctor(Boolean) costruttore utilizzando un argomento falso per evitare di catturare le informazioni di origine. Questo evita la sezione del codice in cui le prestazioni sono ridotte.

2] Esegui il rollback o esegui l'upgrade all'ultima versione di Windows 10

Con questo metodo, esegui il rollback alla versione/build precedente o esegui l'upgrade all'ultima versione/build di Windows 10 se riscontri questo problema e al momento non stai utilizzando l'ultima versione di Windows 10. Disinstalla anche .NET Framework 4.7.1 se presente, dal computer e quindi scaricare e installare una versione precedente o l'ultima versione di .NET Framework.

Spero questo sia di aiuto!

SuperTuxKart per Linux
SuperTuxKart è un fantastico titolo progettato per offrirti l'esperienza di Mario Kart gratuitamente sul tuo sistema Linux. È piuttosto impegnativo e ...
Tutorial Battaglia per Wesnoth
The Battle for Wesnoth è uno dei giochi di strategia open source più popolari a cui puoi giocare in questo momento. Non solo questo gioco è in svilupp...
0 A.D. Tutorial
Tra i tanti giochi di strategia in circolazione, 0 A.D. riesce a distinguersi come un titolo completo e un gioco molto profondo e tattico nonostante s...