Francesco Geri

Il blog di Francesco Geri
posts - 94, comments - 165, trackbacks - 2

Lentezze con Breakpoint condizionale in Visual Studio 2008

Ieri, mentre stavo modificando alcune classi di un mio progetto per fissare alcuni bachi, mi sono improvvisamente accorto che le prestazioni della mia applicazione erano peggiorate drasticamente.

Ho passato varie ore a cercare di capire quale modifica da me apportata aveva introdotto il rallentamento.

Alla fine mi sono accorto che non si trattava di una modifica.

In realtà il rallentamento era dovuto al fatto che avevo aggiunto un breakpoint condizionale su una certa riga di codice. Il breakpoint era posizionato su una proprietà di una classe, in una riga di codice in cui si passava moltissime volte. Non mi accorgevo del passaggio in quanto la condizione non verificava praticamente mai e quindi l'esecuzione non veniva mai fermata in quel breakpoint (avevo sempre eseguito l'applicazione in debug).

 

La cosa è in effetti corretta: ogni volta che il processo si trovava a dover eseguire quell'istruzione doveva essere interrotto per poter valutare la condizione. Essendo quella riga di codice eseguita tantissime volte provocava un ritardo apprezzabile.

Aggiungo che il ritardo era tanto maggiore quanto più complessa era la condizione (esempio i>0 è molto meno pesante di Me.MyProperty1 < My.MyProperty2).

Print | posted on mercoledì 13 gennaio 2010 13:26 |

Powered by:
Powered By Subtext Powered By ASP.NET