Sto usando MySql Connector .NET per caricare un account e trasferirlo al client. Questa operazione è piuttosto intensa, considerando gli elementi figlio dell'account da caricare.Esiste una differenza (di prestazioni) tra il debug e il rilascio?
In modalità di debug, richiede al massimo 1 secondo per caricare l'account. La media sarebbe di 500ms. In modalità di rilascio, sono necessari da 1 a 4 secondi per caricare l'account. La media sarebbe 1500ms.
Poiché non esiste una direttiva #if DEBUG
o simile nel mio codice, mi chiedo da dove viene la differenza.
Esiste un'opzione di creazione progetto che è possibile modificare? O ha a che fare con MySql Connector .NET che avrebbe comportamenti diversi a seconda della modalità di compilazione?
MODIFICA: monitoraggio zecche. prende
uscita 20x il tempo di debug richiederà (confronto media):
Debug (Average: 213000 ticks)
730000
320000
60000
50000
190000
130000
210000
180000
160000
110000
390000
270000
150000
190000
230000
210000
150000
200000
190000
140000
Release (Average: 4404500 ticks)
12940000
170000
180000
80000
80000
130000
120000
5060000
5090000
130000
50000
10430000
25160000
150000
160000
130000
17620000
10160000
100000
150000
confronto.
4.404.500/213.000 = 20
Ora la prima operazione è infatti più lungo, ma in generale, quindi sono tutte le altre volte per il rilascio. Qualche idea?
EDIT 2: ho aggiunto anche un test più ampio che calcola il tempo totale. Per 50 carichi di account, ci vogliono in media 4 secondi nei debug e 40 secondi nel rilascio. Sto iniziando a diventare piuttosto disperata su questo - si tratta di un serio problema di prestazioni per la mia applicazione. Qualcuno ha una supposizione su come risolvere questo problema?
Come stai catturando il tempo necessario per caricare un account? Stai eseguendo l'operazione più volte all'interno di un ciclo e prendendo la media? O stai lanciando l'applicazione come un nuovo processo ogni volta? –
C'è una differenza, tranne che in generale è il contrario, poiché l'ottimizzazione del codice non avviene in modalità debug iirc. Posso dire per certo, però, che il connettore mysql .net non si è mai comportato così per me nei progetti su cui ho lavorato. –
Utilizzare un profiler. Qualcos'altro sta indovinando. –