2009-07-17 7 views

risposta

3

Dottrace è circa la metà del prezzo delle formiche, ed è davvero buono. Creato dalle stesse persone che fanno ReSharper.

Se stai cercando solo un'ottimizzazione del tuo codice, dovresti comunque andare ad Ants, visto che ha una prova gratuita di 15 giorni completa, che dovrebbe essere sufficiente per ottenere un sacco di ottimizzazione fatta.

+0

Uso anche Dottrace e farei sicuramente il secondo passo per questa raccomandazione. –

2

VSProfiler viene fornito con VS e funziona piuttosto bene. Se stai cercando problemi relativi alla memoria, CLRProfiler sarà la tua opzione.

+1

Correggimi se ho torto, ma credo che questo sia disponibile solo con una versione Team di Visual Studio. – womp

+0

Sì, sei corretto. Tuttavia, CLR Profiler è gratuito. – mfawzymkh

2

In generale, il metodo che utilizzo è this.

Non sono tanto interessato a cronometrare pezzi del codice quanto a trovare grandi ritardi di tempo inutili così posso pulirli e compiere l'accelerazione.

È davvero un processo diverso.

AGGIUNTO: Se riesco a elaborare, i tipici problemi di prestazioni che vedo sono che alcune attività (che è quasi sempre una chiamata di funzione) consumano una frazione di tempo, come il 10%, il 50%, il 90%, qualsiasi cosa, e non è veramente necessario - può essere sostituito con qualcos'altro o non fatto affatto, e tale quantità di tempo verrà salvata.

Supponiamo per l'illustrazione è del 50%.

Prendo campioni ad intervalli casuali dello stack di chiamate, ad esempio 10, e quella chiamata ha una probabilità del 50% di apparire su ciascuno, quindi sarà su circa metà dei campioni. In questo modo attirerò la mia attenzione, e cercherò di vedere se quello che sta facendo è davvero necessario, e se no, lo aggiusterò per ottenere l'accelerazione.

Ora, era quella misurazione? Se è così, è stata una misurazione davvero scarsa, perché il numero di campioni era così piccolo. Se 5 su 10 campioni hanno mostrato la chiamata, la frazione di tempo è probabilmente intorno al 50%, dare o avere, ed è sicuramente più del 10%. Quindi potrei non sapere la percentuale con precisione, ma I sicuramente so che vale la pena fissare, e io sicuramente so esattamente dove il problema è.

(Nota a margine:. Non ho contato il numero di chiamate, o stimare la durata della chiamata, piuttosto, ho stimato il costo della chiamata, che è quello che la rimozione si potrebbero salvare, che è il suo tempo di permanenza frazionale sullo stack Notare che sto lavorando al livello , non al livello della funzione. Mi interessa sapere quali sono le chiamate di funzione sopra e sotto la chiamata di interesse, ma a parte questo, problemi a livello di funzione, ad esempio il tempo esclusivo , call graphs e ricorsione, non riproducono alcuna parte.)

Ecco perché dico che misurare le prestazioni e trovare problemi di prestazioni, mentre possono essere complementari, sono compiti molto diversi.

+0

... Ah, un altro drive-by anonimo. Ma la risposta funziona ancora. –

7

EQATEC Profiler è gratuito.

Non l'ho provato da solo, ma suona bene e ci sono alcune testimonianze positive sul loro sito.

Sarei interessato a sentire l'opinione di chiunque lo abbia effettivamente utilizzato.

+2

È semplice ma fa il lavoro. Ed è gratuito (per uso personale) che è fantastico. – DMan

+0

Ho abbandonato rapidamente CodeAnalyst di AMD perché non riuscivo a capire come ottenere un'analisi del "tempo totale trascorso in ciascun metodo". Quindi ho stancato la versione gratuita di EQATEC. Funziona bene per me ... mi ha detto esattamente dov'era il mio problema in circa cinque minuti ... inclusa la registrazione, il download, l'installazione, la configurazione e l'esecuzione della mia prima analisi. Ergo: è davvero facile da usare. Come abbiamo fatto qualcosa prima di google? – corlettk

Problemi correlati