Ho un programma che funziona abbastanza lentamente (impiega 20 secondi anche al rilascio) quindi, volendo aggiustarlo, ho provato ad usare il profiler incorporato di Visual Studio. Tuttavia, quando eseguo il programma con il profilo abilitato, termina in meno di un secondo. Ciò rende molto difficile trovare un collo di bottiglia. Vorrei postare il codice ma è lungo. Ci sono ragioni ovvie o meno ovvie per cui ciò potrebbe accadere?Perché il mio programma scorre più velocemente quando abilito la profilazione?
MODIFICA: Ok, quindi ho ridotto il problema a un gruppo di chiamate gratuite(). Quando li commento, il programma viene eseguito nella stessa quantità di tempo che ha con la creazione dei profili abilitata. Ma ora ho una perdita di memoria: -/
Potrebbe essere una strana forma di effetto di Heisenberg (http: // en.wikipedia.org/wiki/Werner_Heisenberg). Sa che stai guardando e così si fa il culo e si mette al lavoro. :-) –
Suppongo che accada per lo stesso motivo del bug che si verifica sempre nello stesso punto del programma, tranne quando lo si esegue nel debugger. – sepp2k