Qualche profiler C # decente là fuori?

Ho bisogno di un profiler C #.

Anche se non sono contrario a pagare per uno, qualcosa che è gratuito o almeno con una versione di prova sarebbe l’ideale dal momento che ci vuole tempo per sollevare un ordine di acquisto.

Qualche consiglio?

Puoi provare quanto segue:

  • nprof (gratuito ma kinda vecchio)
  • ProfileSharp (open source)
  • .Net Memory Profiler (veramente buono per perdite di memoria, c’è una versione di prova)

Modifica: Nprof è stato sostituito con SlimTune e funziona con le applicazioni .Net 4.0

Ho usato il profiler Ants su un grande progetto c # un anno e mezzo fa. Ha funzionato molto bene per quello che costava, e ha persino superato quelli dei concorrenti più costosi.

Calcola il costo con quasi una risoluzione linea per linea.

Il profiler EQATEC è molto buono ed è completamente gratuito. È facile da configurare e utilizzare e non sembra aggiungere troppo carico all’applicazione. Ho appena iniziato a usarlo oggi e ho già trovato un paio di colli di bottiglia che non avrei notato altrimenti.

dotTrace di JetBrains è ampiamente utilizzato.

Il fantastico NDepend di Patrick Smacchia è eccellente per fornire analisi statiche.

Gestisco un elenco completo di profiler per .NET su SharpToolbox.com.

Troverete qui gli strumenti suggeriti qui e altro, ognuno con una breve descrizione di ciò che propone.

È interessante notare che nessuno menziona che ce n’è uno nelle versioni di Visual Studio di fascia più alta – ho sempre trovato che fosse abbastanza buono per il profiling dell’esecuzione. Per il profiling della memoria, utilizzo Memory Profiler che è già stato menzionato, ma non è quello che definirei come “profiler”.

Che tipo di profiling stavi cercando di fare?

Usiamo il profiler Ants dove lavoro. Fornisce informazioni molto dettagliate in modo semplice.

Utilizziamo .NET Memory Profiler . È un pò brutto ma molto utile per trovare riferimenti ciondolanti.

Inizialmente ho provato il profiler ANTS di Red Gate che è molto sexy, ma da un punto di vista della perdita di memoria, fa schifo per i seguenti motivi:

1) È ridicolmente lento. Ci voleva mezz’ora per portare l’applicazione in uno stato per iniziare la registrazione (impiega 20 secondi senza il red gate).

2) Red Gate ha bisogno di eseguire il proprio strumento sul proprio strumento. Stava usando 900MB di memoria quando ho finito due istantanee! Poi si è schiantato 🙁

Tuttavia, il componente temporale di Red Gate ANTS è stato impressionante. Basta non disturbare con il profiler di memoria, a meno che non si tratti di un’applicazione banale (di ingombro ridotto).

Ho usato AQtime e non mi ha mai deluso. Sono sicuro che c’è una versione di prova.

Prenderò il profiler ANTS del red gate . L’ho usato per rintracciare alcuni problemi di prestazioni davvero preoccupanti ed era estremamente semplice da usare (bassa curva di apprendimento) e presentato dati gradevoli e dettagliati in un modo che era facile da capire. Il cartellino del prezzo è valsa la pena, ma non è gratuito …

Il fantastico NDepend di Patrick Smacchia è eccellente per fornire analisi statiche.

Consiglio vivamente NDepend per l’analisi statica, ma tieni presente che probabilmente dovrai mettere da parte un giorno o due per analizzare effettivamente il carico di camion delle informazioni che fornisce oltre a capire cosa significano tutte le statistiche in termini di il tuo codice.

Il profiler EQATEC ha fatto il lavoro qui.

L’attuale versione di SharpDevelop (3.1.1) ha un bel profiler integrato. È abbastanza veloce e si integra molto bene con l’IDE SharpDevelop e il suo corridore NUnit. I risultati vengono visualizzati in uno stile flessibile Albero / Elenco (utilizzare LINQ per creare la propria selezione). Duplicare il metodo visualizzato salta direttamente nel codice sorgente.

Al momento non li uso, un mio amico è entusiasta del profiler Ants. So che è un prodotto a pagamento non sicuro di quanto sia costoso. Se ti capita di avere un MVP personale, potresti essere in grado di sfruttarlo per ottenere una licenza gratuita.

Ho avuto fortuna con il profiler di memoria .NET

AQTime (perf e memory) o ANTS (v4 performance profiler o v5 beta profiler di memoria) qui.

Ho trovato il .NET Memory Profiler ieri, e devo dire che ne sono molto colpito.
Ordinerò la mia licenza oggi.

Sebbene non sia molto utile per il profilo dell’utilizzo della memoria, il profiler incluso in alcune versioni di Visual Studio svolge un ottimo lavoro di profilazione della velocità di esecuzione.

Qual è il tuo objective?

Il tuo objective è quello di individuare affermazioni specifiche e avere un’idea approssimativa di ciò che stanno contribuendo al tempo totale di esecuzione, in modo da poter trovare modi per farlo in modo diverso?

Per questo, lo giuro con questo metodo.

SlimTune sembra essere molto promettente. http://code.google.com/p/slimtune/