2015-07-01 10 views
9

Il processo di devenv.exe di Visual Studio è a 32 bit (even when run on a 64-bit OS), quindi non può utilizzare più di 4 GB di memoria virtuale.Come ottenere Visual Studio per rimanere all'interno dello spazio di indirizzi virtuali da 4 GB

Sfortunatamente, quando eseguo il debug della mia applicazione C++ con Visual Studio, spesso esaurisco la memoria a causa di questo limite di 4 GB. Ad esempio, utilizzando VMMap, di seguito viene mostrata la progressione del mio tipico utilizzo di Visual Studio in alcune ore che causano un arresto anomalo.

Come è possibile che Visual Studio utilizzi meno memoria, quindi smetto di sprecare tempo con l'arresto anomalo?

È tipico che Visual Studio utilizzi più di 3,5 GB di spazio degli indirizzi virtuali?

Sto usando Visual Studio 2012, ma presumo che questo problema si estenda su versioni VS diverse, dal momento che Visual Studio 2015 non ha ancora una versione a 64 bit.

(Si noti che VMMap riporta “Libero”, come la memoria residua nello spazio di indirizzi, fino a 4 GB per 32 processi bit e 8 TB per 64 processi bit su Windows.)

enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here enter image description here


cose che ho già provato:

  • avvio in modalità sicura
  • rimozione di tutti i plugin e le estensioni in modo che nulla dimostra in Strumenti> Gestione componenti aggiuntivi né Strumenti> Estensioni (https://github.com/tsasioglu/Total-Uninstaller è utile per questo)
  • eliminazione miei .suo/file .SDF
  • eliminazione miei AppData/*/Microsoft/VisualStudio cartelle
  • utilizzando Imbuto e filtrando tutti ma 3 progetti
  • rimosso tutti i miei "il file di simboli (PDB) luoghi" sel ziona e seleziona "Carica automaticamente simboli per:" "Solo moduli specificati"
  • selezionato "Abilita solo il mio codice" per il debug
  • disabilitazione Intellisense (Strumenti -> Opzioni -> Editor di testo -> C/C++ -> Avanzate - > Disattiva IntelliSense)
+2

Quali componenti aggiuntivi, estensioni o plug-in sono in esecuzione. Ho avuto lo stesso problema fino a quando ho disinstallato tutti i Plug In. Ora raramente causa problemi. – Grantly

+2

Hai davvero bisogno di caricare tutti i 167 progetti? In caso contrario, prova l'estensione "Funnel": https://visualstudiogallery.msdn.microsoft.com/5396fa4a-d638-471b-ac3d-671ccd2ea369 – Blorgbeard

+0

VS può certamente usare molto un VM, specialmente con il tuo grande numero di progetti. Prova a rimuovere tutte le estensioni. Inoltre, assicurati che la tua macchina abbia 8 GB di RAM, quindi VS non sta combattendo con il sistema operativo per la RAM. E un SSD potrebbe aiutare con il riavvio. I tuoi screenshot mostrano che stai usando Win7, bene che non sia XP. Dovresti invece utilizzare i contatori delle prestazioni di perfmon e windows. –

risposta

6

e 'possibile ottenere in modo affidabile Visual Studio per rimanere al suo interno 4 GB di memoria virtuale, ma potrebbe essere necessario sperimentare con una o più delle seguenti strategie durante la misurazione l'uso della memoria devenv.exe con VMMap :

  1. rimuovere pl le estensioni e le estensioni da Strumenti> Gestione componenti aggiuntivi e Strumenti> Estensioni (https://github.com/tsasioglu/Total-Uninstaller potrebbero essere utili) e/o eseguire Safe Mode
  2. periodicamente (ad es. mensile) elimina il tuo .sdf e.i suoi file (mentre Visual Studio è chiuso) in modo che possano essere ricreati (invece di eliminare, prendere in considerazione la ridenominazione nel caso in cui si decida di riaverli, in quanto si potrebbero perdere alcune impostazioni di configurazione)
  3. Se si stanno caricando molti simboli (puoi contare "Simboli caricati" nella finestra VS Output), puoi disable this con Strumenti> Opzioni> Debug> Simboli: "Solo moduli specificati", quindi fare clic su "Specifica moduli" e deselezionare "Carica sempre simboli situati accanto ai moduli" . È possibile caricare simboli aggiuntivi durante il debug con Debug> Windows> Moduli.
  4. progetti scaricare dalla grandi soluzioni con Funnel o Solution Folders
  5. Se tutto il resto fallisce, eseguire due istanze diverse di Visual Studio: il primo ha la grande soluzione caricato ma non viene utilizzato per eseguire il debug (ad esempio Test> Avvia senza eseguire debug), e il secondo non ha caricato alcuna soluzione ma è collegato al processo in esecuzione per il debug. (Grazie a ChrisO per questo suggerimento.)
  6. Se davvero non riesci a far funzionare Visual Studio, prova WinDbg che viene utilizzato dagli sviluppatori Microsoft ed è a 64 bit (a differenza di Visual Studio).

ho osservato disabilitando più simbolo di carico riducendo devenv utilizzo della memoria da 1.7 GB e l'eliminazione di mia .suo e il file sdf riducendo l'utilizzo di memoria di ulteriori 600 MB. Questa riduzione dell'utilizzo della memoria ha causato l'arresto anomalo di Visual Studio più volte al giorno per l'esecuzione stabile con la stessa istanza in esecuzione per più giorni, a volte settimane.

Oltre a ridurre l'utilizzo della memoria, è probabile che queste strategie velocizzino significativamente Visual Studio.

+0

Ho inviato un intervento di supporto tecnico Microsoft con il numero di caso 115101513270502. Microsoft mi ha aiutato a elaborare queste strategie. – JDiMatteo

Problemi correlati