Problema di debug lento in Visual Studio


87

Nella mia istanza di Visual Studio, anche se ho appena scritto una singola riga di ritorno in un'applicazione console C #, ci vorrà un minuto dopo aver premuto F5per eseguire il codice effettivo (intendo il tempo necessario per fermarsi sulla singola istruzione return dopo premendo F5- ho impostato un punto di interruzione sull'istruzione return nella mainfunzione). Che c'è? C'è una lista di controllo?

Sto utilizzando l'edizione VSTS di Visual Studio 2008 e il debug su Windows Server 2003 x64.


2
Solo per essere sicuro ... Quanta memoria hai a disposizione quando provi a eseguire il codice? VS è un maiale di memoria dalla mia esperienza ...
RSolberg

1
Qual è il tuo hardware? Visual Studio è molto impegnativo in termini di disco e CPU, quindi avere una macchina economica non avrà prestazioni elevate.
William Holroyd,

1
Avere> 2-3 breakpoint condizionali è mal gestito da VS ...
Simon Buchan

Ho una memoria 4G e nessun altro processo è in esecuzione contemporaneamente. Ho appena riavviato la mia macchina un paio di volte e lo stesso sintomo. Non ho incontrato tali problemi una settimana prima. Altre idee?
George2

2
Sono tutti elencati in Debug-> Windows-> Breakpoints (Ctrl-Alt-B). Ma lo sapresti se ne facessi ...
Simon Buchan,

Risposte:


150

Potrebbe essere necessario eliminare tutti i punti di interruzione --- nota che è necessario fare clic sul pulsante "Elimina tutti i punti di interruzione" (o utilizzare Ctrl+ Shift+ F9), NON eliminarli uno per uno. Se Visual Studio ha modificato le impostazioni della soluzione, quest'ultima non funzionerà. Potrebbe essere necessario aggiungere prima un punto di interruzione, affinché funzioni (intelligente, eh?).

Nel peggiore dei casi, potrebbe essere necessario eliminare il .suofile e consentire a Visual Studio di avviarne uno nuovo da zero. Si noti che, tuttavia, si perderanno le impostazioni di configurazione della soluzione personale (solo per questa soluzione, non per altre). Tuttavia, potresti voler spostare / rinominare il file temporaneamente finché non decidi se questo è il problema o meno; in questo modo, puoi sempre spostarlo indietro. Ho visto che alcune risorse online consigliano di eliminare (spostare / rinominare) anche il .ncbfile.


2
Ciao zweiterlinde. Trovo che il collo di bottiglia dovrebbe occuparsi della rete. Quando collego il cavo di rete, le prestazioni sono molto buone nel debug. Hai qualche idea sul perché? e come valutare ulteriormente?
George2

l'eliminazione di un file .suo da 14 MB ha funzionato per me :) ora è un esiguo 150 KB. problema si è verificato dopo l'aggiornamento da VS2010 Pro a Ultimate
GreyCloud

+1. Grazie mille, ha funzionato). Il mio VS 2010 ha impiegato 2 minuti per avviare un progetto su una workstation. Eh. Che bug ...
Arsen Zahray

Ho anche eliminato il file .suo, ma l'ho fatto mentre Visual Studio era in esecuzione. Quando ho riavviato Visual Studio, ha collegato di nuovo il debugger molto velocemente e sembra che abbia mantenuto la maggior parte delle mie impostazioni.
bloccato il

+1 Grazie mille, davvero. Quindi nel mio caso l'eliminazione del file suo ha funzionato perfettamente per me.
Dean Seo

26

L'ho già visto prima. Prova a eliminare tutti i punti di interruzione e quindi imposta quelli desiderati. Hit F5. È più veloce adesso?

Ho appena notato che hai menzionato l'impostazione della funzionalità di debug del sorgente .NET. Prova a disabilitarlo. La connettività di rete al server di origine di Microsoft potrebbe essere lenta. Disabilitare anche qualsiasi connettività del server di simboli nel menu StrumentiOpzioniDebugSimboli .

Prova anche a disabilitare "Abilita valutazione proprietà e altre chiamate di funzioni implicite" nel menu StrumentiOpzioniDebugGenerale .


1
Nella mia finestra dei punti di interruzione, ce n'è solo uno sull'istruzione return della mia funzione Main. Altre liste di controllo?
George2

1
Aggiunte altre cose da provare. Spero che sia d'aiuto.
m diesis

Ho rimosso l'unico punto di interruzione sull'istruzione return della mia funzione Main, ma ancora molto lento per avviare l'applicazione e arrestare, richiede circa 1 minuto. Altre idee?
George2

Ecco un'altra idea per isolare il tuo problema. Prova a scollegare il cavo di rete, riavvia Visual Studio e premi F5 sul tuo progetto. Questo cambia qualcosa?
m diesis

1
Prova a disabilitarlo, la tua connettività di rete al server di origine di Microsoft potrebbe essere lenta. Disattiva anche qualsiasi connettività del server di simboli in Strumenti> Opzioni> Debug> Simboli - Questo ha funzionato per me
Yousuf Azad

19

Oppure rimuovi il tuo file .suo che può essere trovato accanto al tuo file della soluzione (.sln). Ciò ha risolto un problema che avevo con sessioni di debug che richiedevano molto tempo per l'avvio e l'arresto.


+1 per aver salvato la mia sanità mentale (e avermi salvato una reinstallazione di VS2010). Grazie!
Chuck Dee

Questa è la soluzione di riferimento anche su MSDN: social.msdn.microsoft.com/Forums/vstudio/en-US/…
ecoe

La conferma di ciò vale anche per le versioni precedenti 2003.NET e 2005. Un'applicazione aveva un paio di punti di interruzione e funzionava correttamente. Aggiunti altri punti di interruzione ... 100% di utilizzo della CPU e tremendo tremolio in VS durante il debug. VS chiuso, cancellato .suo, riaperto e il debug è di nuovo veloce.
AlainD

Questa è la soluzione che trovo funziona sempre ogni volta che VS diventa troppo lento in termini di debug
Graviton

Oppure rinomina il file .suo prima di eliminarlo in modo che sia possibile tornare allo stato precedente.
Peter Mortensen,

12

Ho avuto questo problema. Dopo aver provato tutti i consigli elencati e aver rimosso tutte le estensioni di Visual Studio, abbiamo finalmente capito che in qualche modo IntelliTrace era abilitato. La disattivazione ha risolto tutto.

Procedura: abilitare e disabilitare IntelliTrace


Risolve anche il problema se hai un progetto che utilizza SharpDX: ha funzionato per me e ora le prestazioni grafiche tornano alla normalità.
komorra

Nel caso speciale di utilizzo di SharpDX e Debug-Build, ho avuto lo stesso effetto, ma era abilitato solo il debug DX. Se non è necessario, cerca "DeviceCreationFlags.Debug" e disabilitalo
thewhiteambit

In VS2015 ho deselezionato "Abilita Intellitrace" e ho fatto clic su OK. Successivamente ha scoperto che è necessario passare da "Intellitrace e informazioni sulla chiamata" a "Solo eventi Intelllitrace"; se non lo fai, "Abilita Intellitrace" RIMANE CONTROLLATO!
smirkingman

Risolti i problemi! (non credere al commento di MS: "Questo argomento si applica solo a Visual Studio 2010 Ultimate."). Ho l'edizione gratuita 2017 e velocizza notevolmente il debug!
marsh-wiggle

IntelliTrace in VS 2017 e versioni successive è una funzionalità solo Enterprise, quindi questo non ha risolto il mio problema (poiché avevo solo l'edizione VS 2017 Pro).
FoxDeploy

6

Hai impostato molti punti di interruzione? Questi possono davvero rallentare il tempo di avvio. Ogni volta che un nuovo modulo viene caricato nello spazio degli indirizzi del processo, è necessario controllarli tutti per vedere se sono validi.


Ho solo un punto di interruzione nel codice della modalità utente. Ma mi sono ricordato una settimana prima di utilizzare la funzionalità di debug del codice sorgente in Visual Studio per impostare un punto di interruzione nel codice interno .Net. Qualche modo per controllare tutti i punti di interruzione compresi quelli interni .Net che ho impostato?
George2

Nessuno, ma ancora lento, altre idee?
George2

non proprio, sembra che il tuo hardware dovrebbe essere ok e tutti gli altri elementi che avrei provato sembrano essere stati spuntati da altri commentatori. A questo punto proverei probabilmente a reinstallare Visual Studio - forse qualcosa è incasinato con l'installazione
1800 INFORMAZIONI

Ho reinstallato in un'altra directory ma ho lo stesso sintomo. Altre idee?
George2

6

Vai al menu StrumentiOpzioniDebuggerSimboli e controlla se hai impostato simboli pubblici o percorsi di rete UNC . Controlla anche il menu Strumenti * → OpzioniDebuggerGenerale per vedere se hai impostato il server di origine.

Tutto ciò può influire sul debug basato sulla velocità di rete lenta o sui server non disponibili. Il tempo di attesa di 5 minuti è timeout di rete.

Se non è impostato nulla nelle opzioni, controlla se hai impostato la variabile d'ambiente _NT_SYMBOL_PATH.


Grazie, questo è stato per me. Di tanto in tanto caricavo 1 o 2 file di simboli nella finestra Moduli, che puntavano ai simboli delle nostre build tramite percorsi UNC, o meno frequentemente, che puntavano a macchine virtuali che non esistono più. Non mi rendevo conto di aver salvato tutti questi percorsi nelle impostazioni del debugger / simboli.
brian

6

Il mio collega aveva un Visual Studio a risposta molto lenta e ci sono voluti letteralmente minuti per eseguire un passaggio durante il debug.

La causa principale si è rivelata essere un programma antivirus (Threatfire) impazzito mentre Visual Studio era in esecuzione. L'uccisione del suo processo ha risolto immediatamente tutto.


Ho avuto un'orribile esperienza di debug web al lavoro finché non ho disabilitato l'antivirus ESET. Dopo aver premuto F5 il mio tempo di risposta è passato da 2-3 minuti a 2-3 secondi.
James Hulse

1
Sospendere ThreatFire per un po 'ha aiutato molto anche me - grazie! (Anche la disattivazione temporanea di Avast! Ha aiutato un po ', ma non così tanto.)
Jon Coombs,

Malwarebytes era la causa del mio problema. Abbandonarlo ha risolto la lentezza.
Ben Rubin

Sto anche usando Malwarebytes ... Dopo averlo chiuso, il debug di VisualStudio è molto più veloce. L'avvio del debug era di 15 secondi prima, ora è di 2 secondi) .. Grazie!
BlueDev

5

Nel mio caso la modifica del simbolo di debug "Carica automaticamente il simbolo per" opzione da "Tutti i moduli" a "Solo moduli specificati" ha risolto il problema. È possibile modificare questa opzione dal menu StrumentiOpzioniDebugSimboli .


3

Una causa diversa e in più ... Come trovare il problema

Per me era l'opzione ShowOtherThreadIpMarkers . Un valore di 1 rende Visual Studio (2010) insopportabilmente lento (3-5 secondi per ogni passaggio di debug. Con un valore di 0, è di nuovo veloce.

Qual è questa opzione? Non ne ho idea. Non sono riuscito a trovarlo tramite l'interfaccia utente di Visual Studio. Ho deselezionato tutte le possibili opzioni di debug e non ha funzionato nulla.

Quindi sono andato a Impostazioni importazione / esportazione e ho caricato le mie vecchie impostazioni salvate in precedenza andando indietro nel tempo fino a quando Visual Studio non è stato di nuovo veloce, quindi ho confrontato i file vssettings ..., ecc., Ecc.

Vorrei sottolineare che se carichi le impostazioni mentre sei in modalità di debug fermo su un punto di interruzione, diventano immediatamente effettive. Non è necessario arrestare il debugger e riavviare.


+1 Grazie, questo era anche il mio problema con un'app Web C # in VS2015. Ho disabilitato l'opzione "Mostra thread nell'origine" nella barra degli strumenti durante il debug e il problema è scomparso. Se l'opzione non è disponibile nella barra degli strumenti, può essere trovata facendo clic con il pulsante destro del mouse su qualsiasi thread all'interno della finestra Thread.
Groo

2

Dal blog di ScottGu collegato da Travis: "Un altro problema di prestazioni di cui ho sentito parlare di recente è un problema che alcune persone hanno segnalato di imbattersi con il componente aggiuntivo di Google Toolbar. Per qualche motivo questo a volte può causare lunghi ritardi quando si collega l'elemento visivo Debugger di Studio nel browser. Se riscontri lunghi ritardi con il caricamento dell'applicazione web e hai installato Google Toolbar (o altre barre degli strumenti), potresti provare a disinstallarle per vedere se questa è la causa del problema. "


Hai installato Google Toolbar? Anche dire no è utile per i futuri lettori di questa domanda.
Cat Zimmermann

Ho aperto IE e non viene visualizzata alcuna barra degli strumenti, significa che non ho alcuna barra degli strumenti installata e non avrà alcun impatto su Visual Studio? :-)
George2,

2
Wow. Pensavo che non avesse senso, ma ho appena disinstallato e la mia macchina è tornata in modalità utilizzabile
orellabac

1
Un altro plugin che viene incolpato è LastPass. Questo è solo un problema con IE o un plug-in in qualsiasi browser può influire sulle cose?
Denise Skidmore

1
@DeniseSkidmore Sei incredibile, vorrei poter votare più di una volta. Tutte queste altre soluzioni e nulla mi ha aiutato ... poi ho letto il tuo commento, disabilitato il componente aggiuntivo LastPass IE e improvvisamente è di nuovo veloce. Ho confermato che questo era il problema riattivando il componente aggiuntivo e ha rallentato di nuovo. GRAZIE!!!!
Lews Therin

2

L'esecuzione con il debugger per me era circa 10 volte più lenta rispetto all'esecuzione senza debug.

Dopo aver provato ogni soluzione suggerita qui, ho esaminato tutte le impostazioni del debugger e abilitato / disabilitato per vedere se ha fatto la differenza.

Per me, si è scoperto che la disattivazione di ottimizzazione reprimere JIT il carico del modulo nelle impostazioni di debug massicciamente migliorato le cose.


1

Assicurati di non avere mappature di rete obsolete su server che non esistono più (i timeout di rete ti uccideranno). Oppure usa qualcosa come Process Monitor per vedere se una rete (o un altro errore di file) sembra bloccarsi per molto tempo.


Process Monitor è uno strumento fantastico! :-) Ma quale opzione in Process Monitor potrebbe essere utilizzata per vedere "se una rete (o un altro errore di file) sembra bloccarsi per molto tempo"?
George2

Cercherei cose come errori quando tento di aprire un file o quanto tempo impiegano le operazioni (non dimenticare che ci sono elementi di dati che potresti non vedere come 'Durata' che puoi selezionare in Opzioni / Seleziona colonne ...) . Usa i filtri e le luci a tuo vantaggio.
Michael Burr,

Ciao Michael Burr, in Process Monitor intendi monitorare il processo VSTS stesso o monitorare tutti i processi sulla macchina?
George2

Comincerei sicuramente con solo VSTS (devenv.exe) o verrai sommerso da informazioni che quasi certamente non sono utili.
Michael Burr,

1
Ti consigliamo di utilizzare "Process Monitor" e non "Process Explorer". Vedi technet.microsoft.com/en-us/sysinternals/bb896645.aspx . Le 2 utilità hanno funzioni diverse. Procmon traccerà le operazioni su file e registro. Procexp è un'utilità utile ma non fornisce quel tipo di tracciamento.
Michael Burr

1

Stai usando un server di simboli per scaricare simboli per i file DLL di Windows?

In tal caso, disabilitalo poiché può richiedere del tempo, ma non mi aspetto che ciò causi lunghi ritardi in un'applicazione console di base.

Menu StrumentiOpzioni DebugSimboli .


Il contenuto è vuoto in Strumenti> Opzioni> Debug> Simboli. Altre idee?
George2

1

So che questo è un vecchio argomento, ma per quello che vale ...

Ho scoperto che se ho una finestra separata di Internet Explorer aperta per molto tempo, può essere necessario fino a un minuto per avviare il debug. Chiudi tutte le finestre di Internet Explorer e il debug si avvia immediatamente.


1

Nel mio caso Google Toolbar ha rallentato il mio debug.

gplus_notifications_gadget.html continuava ad andare avanti e a sovraccaricare il debugger. Volevo mantenere la Google Toolbar perché la uso regolarmente, quindi ho semplicemente disabilitato il pulsante di notifica G + (il piccolo pulsante accanto al pulsante del profilo). Adesso è felice.


1

Ho avuto lo stesso problema in Visual Studio 2010, con il passaggio del codice estremamente lento (tra 3 e 10 secondi). Tuttavia, nessuna delle modifiche alle impostazioni di cui sopra ha funzionato.

Alla fine ho trovato la soluzione definitiva, che avrebbe funzionato in tutti i problemi del post sopra: ripristina tutte le tue impostazioni, come descritto qui (essenzialmente menu StrumentiImporta ed esporta impostazioni , Ripristina tutte le impostazioni , con il salvataggio delle impostazioni esistenti in un file (per il ripristino )).

Potresti prima voler salvare una parte particolare delle tue impostazioni. Ad esempio, ho prima salvato il mio tema colore (simile a Solarizzato) e poi l'ho ripristinato dopo il ripristino globale.


1

Per me, l'impostazione che ha interrotto le prestazioni (Windows 8 è stato addirittura bloccato tranne che per il movimento del mouse) era deselezionare "Interrompi tutti i processi quando un processo si interrompe" nel menu OpzioniDebugGenerale .


1

Solo un'altra causa di una lenta esperienza di debug di Visual Studio ...

Molto tempo fa ho potuto FusionLogvedere cosa stava causando un problema di associazione dell'assembly.

Assicurati di disabilitarlo dopo averlo usato. Perché? Perché scrive molti dati di registrazione sul disco mentre è abilitato.

Questa è la FusionLogchiave nel registro di Windows ( regedit.exe):

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion

Cambiare i ForceLog, LogImmersivee LogResourseBindingsvalori da 1 (attivato) a 0 (disattivato).


Ecco cosa mi stava succedendo. Puoi anche disabilitare Fusion Log tramite la sua interfaccia grafica
Denise Skidmore

Puoi vedere se questo è il tuo problema quando esegui Process Monitor vedrai tutti gli accessi al file Fusion Log.
Denise Skidmore

0

Anch'io ho avuto questo problema, ma nel mio caso non aveva nulla a che fare con i punti di interruzione. Sono state le scorciatoie del codice che ho aggiunto nella finestra delle attività:

http://www.customsoftwareframeworks.com/blog/longwaittimetoinsertoraddalineoftextbuginvisualstudio--tasklistwindow--onlywhenaddingandremovelines

Sono sicuro che ci sono altri modi in cui potresti vedere un problema come questo, ma c'è un bug da qualche parte che ha causato questo problema per me ... l'eliminazione di tutte le mie opzioni avrebbe risolto il problema, ma è qualcosa che non volevo fare. Quindi, ho eseguito il debug e ne ho scritto nel mio blog ... il tuo problema sembra il mio.


Il collegamento è interrotto: "La risorsa che stai cercando è stata rimossa, il suo nome è cambiato o è temporaneamente non disponibile."
Peter Mortensen

0

Qualcosa che ha funzionato per me è assicurarmi che non ci siano punti di interruzione condizionali. Oltre a questo, ho avuto successo nel correggere il debug lento semplicemente riavviando Visual Studio e aprendo solo un'istanza di Visual Studio alla volta.


0

Ho avuto un problema simile e nessuna delle altre linee guida sembrava aiutare. Mi ero riavviato inutilmente. Avevo rimosso tutti i punti di interruzione, eliminato il file .suo, controllato che i simboli non venissero caricati da fonti esterne e controllato che non esistessero percorsi nell'applicazione non disponibile.

Quindi, ho pensato di pulire la soluzione. Ho notato nella finestra di output che C # IntelliSense ha segnalato un problema durante la pulizia:

Si è verificato un problema durante la lettura dei metadati da "{B0C3592F-F0D1-4B79-BE20-3AD610B07C23}" ("Il sistema non riesce a trovare il file specificato."). IntelliSense potrebbe non funzionare correttamente finché la soluzione non viene ricaricata.

In questo caso, una volta scoperto il messaggio di errore, ti dice esattamente come risolverlo. (Buon lavoro sul testo dell'errore, cattivo lavoro sulla rilevabilità!) Ho scaricato i progetti della soluzione, quindi li ho ricaricati. Sono stato quindi in grado di eseguire con successo la soluzione pulita . Ha funzionato e anche il debugger ha funzionato.


0

La chiusura della finestra "Autos" ha migliorato il debug in Visual Studio 2008 per una grande soluzione C ++ nativa.

Nasconderlo non funzionerà. Deve essere chiuso.


0

Ho sperimentato lo stesso rallentamento e la disconnessione dalla rete ha risolto il problema per me come hanno affermato altri commenti e risposte (ma ovviamente questa non è una soluzione ideale).

Nel mio caso, questa semplice modifica ha risolto la mia soluzione: nelle proprietà del progetto nella scheda di debug ho disabilitato "Abilita il processo di hosting di Visual Studio" (sto eseguendo Visual Studio 2010).


-9

Ottieni più memoria e un HD più veloce. Maggiori dettagli sono qui .


1
Non penso che sia un problema H / W, dal momento che il mio hardware è memoria 4G + 2 CPU (2.33G), è sufficiente? BTW: non ho sofferto di questo una settimana prima, quindi penso che dovrebbero essere alcuni problemi di configurazione?
George2

2
+1 Consiglio utile, non riesco a credere che le persone lo votino. Sebbene l'eliminazione del file .suo aiuti 10 volte di più.
Andomar

1
L'OP non ha nemmeno detto quali siano le loro specifiche. Se mi stessi consigliando, mi consiglieresti di ottenere una RAM maggiore di 32 Gb e più veloce del mio già veloce stato solido.
Valamas
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.