Suggerimenti sulle prestazioni di Visual Studio

I suggerimenti per le prestazioni di Visual Studio si riferiscono a situazioni di memoria insufficiente che possono verificarsi in casi eccezionali. In queste situazioni, è possibile ottimizzare determinate funzionalità di Visual Studio che potrebbero non essere in uso. I suggerimenti seguenti non sono concepiti come raccomandazioni generali.

Nota

In caso di difficoltà di uso del prodotto a causa di problemi di memoria, segnalarlo tramite lo strumento di feedback.

Usare un sistema operativo a 64 bit

Se si aggiorna il sistema da una versione di Windows a 32 bit a una versione a 64 bit, espandere la quantità di memoria virtuale disponibile per Visual Studio da 2 a 4 GB. Un aggiornamento del sistema operativo a 64 bit consente a Visual Studio di gestire carichi di lavoro più grandi.

Per altre informazioni, vedere Limiti di memoria per le versioni di Windows e Windows Server.

Suggerimento

Visual Studio 2022 in Windows è un'applicazione a 64 bit. Le versioni precedenti sono a 32 bit.

Disabilitare il ripristino automatico dei file

Visual Studio riaprire automaticamente i documenti lasciati aperti nella sessione precedente. Questa azione di ripristino automatico dei file può prolungare i tempi necessari per caricare una soluzione fino al 30% o più, a seconda del tipo di progetto e dei documenti aperti. I progettisti come Windows Form e XAML e alcuni file JavaScript e TypeScript possono essere lenti all'apertura.

Visual Studio invia una notifica in una barra gialla quando il ripristino automatico dei documenti causa un rallentamento del caricamento di una soluzione. È possibile disabilitare la riapertura automatica dei file seguendo questa procedura:

  1. Selezionare Strumenti>Opzioni per aprire la finestra di dialogo Opzioni.

  2. Nella pagina Progetti e soluzioni>Generale deselezionare Reopen documents on solution load (Riapri documenti al caricamento della soluzione).

Se si disabilita il ripristino automatico dei file, è possibile accedere velocemente ai file da aprire usando il comando Vai a:

  • Per le funzionalità generali di Vai a, selezionare Modifica>Vai a>Vai a tutti oppure premere CTRL+T.

  • È possibile passare all'ultima posizione di modifica in una soluzione usando Modifica>Vai a>Vai alla posizione dell'ultima modifica oppure premendo CTRL+MAIUSC+BACKSPACE.

  • Usare Go To Recent File (Vai a file recenti) per visualizzare un elenco di file visitati di recente in una soluzione. Selezionare Modifica>Vai a>Go To Recent File (Vai a file recenti) oppure premere CTRL+1, CTRL+R.

Configurare le opzioni di debug

Se in genere si esegue memoria insufficiente durante le sessioni di debug, è possibile ottimizzare le prestazioni apportando una o più modifiche alla configurazione.

  • Abilitare Just My Code

    L'ottimizzazione più semplice consiste nell'abilitazione della funzionalità Just My Code che carica solo i simboli per il proprio progetto. L'abilitazione di questa funzionalità può offrire un notevole risparmio di memoria per il debug delle applicazioni gestite (.NET). Questa opzione è già abilitata per impostazione predefinita in alcuni tipi di progetto.

    Per abilitare Just My Code, scegliere Strumenti>Opzioni>Debug>Generale, quindi selezionare Abilita Just My Code.

  • Specificare i simboli da caricare

    Per il debug nativo, il caricamento dei file di simboli (con estensione pdb) è dispendioso in termini di risorse di memoria. È possibile configurare le impostazioni dei simboli del debugger per risparmiare memoria. In genere, si configura la soluzione per caricare solo i moduli del proprio progetto.

    Per specificare il caricamento dei simboli, scegliere Strumenti >Opzioni>Debug>Simboli.

    Impostare le opzioni su Solo moduli specificati anziché su Tutti i moduli e quindi specificare quali moduli si intende caricare. Durante il debug, è anche possibile fare doppio clic su moduli specifici nella finestra Moduli per includere in modo esplicito un modulo nel caricamento dei simboli (per aprire la finestra durante il debug, scegliere Debug>Finestra>Moduli).

    Per altre informazioni, vedere Specificare i file di simboli e di origine nel debugger.

  • Disabilitare gli strumenti di diagnostica

    È consigliabile disabilitare la profilatura della CPU dopo l'uso. Questa funzionalità può utilizzare grandi quantità di risorse. Dopo aver abilitato la profilatura della CPU, questo stato viene mantenuto per le sessioni di debug successive, perciò è preferibile disattivarla al termine. È possibile salvare alcune risorse disabilitando gli strumenti di diagnostica durante il debug se non sono necessarie le funzionalità fornite.

    Per disabilitare gli strumenti di diagnostica, avviare una sessione di debug, selezionare Strumenti>Opzioni>debug>Generale e quindi deselezionare l'opzione Abilita strumenti di diagnostica durante il debug.

    Per altre informazioni, vedere Strumenti di profilatura.

Disabilitare strumenti ed estensioni

Per migliorare le prestazioni, è possibile disabilitare alcuni strumenti o estensioni.

Suggerimento

È in genere possibile isolare i problemi di prestazioni disattivando le estensioni una alla volta e ricontrollando le prestazioni.

Servizio di linguaggio gestito (Roslyn)

Per informazioni sulle prestazioni di .NET Compiler Platform ("Roslyn"), vedere Considerazioni sulle prestazioni di soluzioni di grandi dimensioni.

  • Disabilitare CodeLens

    Visual Studio esegue un'attività Trova tutti i riferimenti su ogni metodo quando viene visualizzato. CodeLens offre funzionalità come la visualizzazione inline del numero di riferimenti. Il lavoro viene eseguito in un processo separato, ad esempio ServiceHub.RoslynCodeAnalysisService32. In soluzioni di grandi dimensioni o in sistemi con risorse limitate, questa funzionalità può influenzare notevolmente le prestazioni. Se si riscontra un elevato utilizzo della CPU in questo processo o se si verificano problemi di memoria, ad esempio durante il caricamento di una soluzione di grandi dimensioni in un computer da 4 GB, è possibile disabilitare la funzionalità CodeLens per liberare le risorse.

    Per disabilitare CodeLens, scegliere Strumenti>Opzioni> Editor di testo>Tutti i linguaggi>CodeLens e deselezionare la funzionalità.

    Per altre informazioni, vedere Trovare modifiche al codice e altre cronologie con CodeLens.

Altri strumenti ed estensioni

  • Disabilitare le estensioni

    Le estensioni sono componenti software aggiuntivi aggiunti di Visual Studio che offrono nuove funzionalità o estendono le funzionalità esistenti. Le estensioni possono spesso dare origine a problemi di memoria. Se si verificano problemi di memoria, provare a disabilitare estensioni una alla volta per verificarne l'impatto su scenario o flusso di lavoro.

    Per disabilitare le estensioni, andare a Estensioni>Gestisci estensioni e disabilitare l'estensione specifica.

  • Disabilitare la modalità mappa

    La modalità mappa visualizza righe di codice, in miniatura, sulla barra di scorrimento. La modalità mappa è abilitata per impostazione predefinita.

    Per disabilitare la modalità mappa, passare a Strumenti>Opzioni>Editor>di testo Tutte le lingue> Barre di scorrimento e nella sezione Comportamento deselezionare l'opzione Usa modalità mappa per barra di scorrimento verticale.

  • Disabilitare il ritorno a capo automatico

    Il ritorno a capo automatico visualizza la parte di una lunga riga di codice che si estende oltre la larghezza corrente della finestra dell'editor di codice. Il ritorno a capo automatico è attivo per impostazione predefinita.

    Per disabilitare il ritorno a capo automatico per un progetto attualmente in uso, passare a Modifica>ritorno a capo automatico avanzato.> È possibile attivare o disattivare questa impostazione usando gli stessi comandi di menu.

    Per disabilitare il ritorno a capo automatico per tutti i progetti, passare a Opzioni strumenti>Generale>>Editor>di testo Tutti i linguaggi> e nella sezione Impostazioni deselezionare l'opzione a capo automatico.

  • Disabilitare la finestra di progettazione XAML

    La finestra di progettazione XAML è abilitata per impostazione predefinita, ma usa risorse solo se si apre un file con estensione xaml. Se si usano file XAML ma non si vuole usare la funzionalità di progettazione, disabilitare questa funzionalità per liberare memoria.

    Per disabilitare la finestra di progettazione XAML, passare a Strumenti>Opzioni>progettazione>XAML Abilita progettazione XAML e deselezionare l'opzione.

  • Rimuovere i carichi di lavoro

    È possibile utilizzare il programma di installazione di Visual Studio per rimuovere i carichi di lavoro che non vengono più utilizzati. Questa azione può ridurre le esigenze di memoria di avvio ed esecuzione escludendo i pacchetti e gli assembly non più necessari.

  • Aggiungere file non registrati a .gitignore locale

    Visual Studio esegue il comando git status Git con file non registrati per offrire un'esperienza semplice quando si aggiungono nuovi file a un repository. Quando è presente un numero elevato di file non registrati, git status può utilizzare memoria aggiuntiva. Per ignorare questi file e migliorare le prestazioni di git status, è possibile aggiungere questi file o cartelle al file con estensione gitignore locale. Per accedere al file, passare a Git> Impostazioni> Git Repository Impostazioni. Nella sezione File Git selezionare Quindi Aggiungi per creare un file con estensione gitignore oppure selezionare Modifica se ne è già disponibile uno.

  • Abilitare il grafico di commit negli strumenti Git

    Novità di Visual Studio 2022 versione 17.2: se si verificano ritardi quando si visualizza il repository Git o la cronologia dei rami in Visual Studio, è stata integrata una funzionalità "commit graph" che può essere utile. Per usare il grafico di commit, assicurarsi di scaricare e installare Visual Studio 2022. Per altre informazioni sul grafico di commit, vedere il post di blog Supercharge your Git experience in Visual Studio (Sovracharge your Git Experience in Visual Studio ).

Imporre una Garbage Collection

CLR usa una sistema di gestione della memoria di Garbage Collection. In questo sistema, talvolta viene utilizzata memoria da oggetti non più necessari. Questo stato è temporaneo; Il Garbage Collector rilascia questa memoria in base alle prestazioni e all'euristica dell'utilizzo delle risorse. È possibile imporre a CLR la raccolta della memoria inutilizzata usando un tasto di scelta rapida in Visual Studio. Se è presente una quantità significativa di garbage waiting per la raccolta e si forza un'operazione di Garbage Collection, verrà visualizzato l'utilizzo della memoria del processo devenv.exe in Gestione attività. È raramente è necessario utilizzare questo metodo. Tuttavia, dopo il completamento di un'operazione dispendiosa (ad esempio una compilazione completa, una sessione di debug o un evento di apertura della soluzione), può consentire di determinare la quantità di memoria effettivamente usata dal processo. Poiché Visual Studio è misto (gestito e nativo), è talvolta possibile che allocatore nativo e Garbage Collector si contengono le risorse di memoria. In condizioni di utilizzo elevato della memoria, può essere utile per imporre l'esecuzione del Garbage Collector.

Per forzare un'operazione di Garbage Collection, usare questa scelta rapida da tastiera: CTRL+ALT+MAIUSC+F12, CTRL+ALT+MAIUSC+F12 (premere due volte).

Se l'uso forzato di Garbage Collection rende affidabile il funzionamento dello scenario, inviare un report tramite lo strumento di feedback di Visual Studio perché questo comportamento potrebbe essere un bug.

Per una descrizione dettagliata del Garbage Collector di CLR, vedere Nozioni fondamentali sulla Garbage Collection.