Domanda

Ho bisogno di un profiler C#.

Anche se non sono contrario a pagarne uno, qualcosa che sia gratuito o almeno con una versione di prova sarebbe l'ideale poiché ci vuole tempo per emettere un ordine di acquisto.

Qualche consiglio?

È stato utile?

Soluzione

Puoi provare quanto segue:


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

Altri suggerimenti

ero solito Profilatore di formiche su un grande progetto C# un anno e mezzo fa.Ha funzionato davvero molto bene per quello che costava e ha persino sovraperformato alcuni dei concorrenti più costosi.

Calcola i costi con una risoluzione quasi riga per riga.

IL Profilatore EQATEC è molto buono ed è completamente gratuito.È facile da configurare e utilizzare e non sembra aggiungere troppi costi all'applicazione.Ho iniziato a usarlo proprio oggi e ho già riscontrato un paio di colli di bottiglia che altrimenti non avrei notato.

dotTrace di JetBrains è ampiamente utilizzato.

Patrick Smacchia è fantastico NDipende è eccellente per fornire analisi statiche.

Mantengo un approccio completo elenco di profiler per .NET su SharpToolbox.com.

Troverai lì gli strumenti qui suggeriti ed altro ancora, ciascuno con una breve descrizione di ciò che propone.

È interessante notare che nessuno menziona che ce n'è uno nelle versioni di fascia alta di Visual Studio: l'ho sempre trovato abbastanza buono per la profilazione dell'esecuzione.Per la profilazione della memoria utilizzo Memory Profiler di cui è già stato menzionato, ma non lo è quello che generalmente descriverei come "un profiler".

Che tipo di profilazione stavi cercando di fare?

Noi usiamo Profilatore di formiche dove lavoro.Fornisce informazioni molto dettagliate in modo semplice.

Noi usiamo Profilo di memoria .NET.È un po' brutto ma molto utile per trovare riferimenti pendenti.

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

1) È ridicolmente lento.È stata necessaria mezz'ora per portare l'applicazione in uno stato in cui avviare la registrazione (richiede 20 secondi senza cancello rosso).

2) Red Gate deve eseguire il proprio strumento sul proprio strumento.Stavo utilizzando 900 MB di memoria quando ho finito due istantanee!Poi si è bloccato :(

Tuttavia la componente temporale di Red Gate ANTS è stata impressionante.Basta non preoccuparsi del profiler della memoria, a meno che non si abbia a che fare con un'applicazione banale (di dimensioni ridotte).

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

Io secondo profiler ANTS di Red Gate.L'ho usato per rintracciare alcuni problemi di prestazioni davvero preoccupanti ed era semplicissimo da usare (curva di apprendimento bassa) e presentava dati piacevoli e dettagliati in un modo facile da capire.Ne vale la pena, ma non è gratis...

La fantastica NDEPER di Patrick Smacchia è eccellente per fornire analisi statiche.

Consiglierei vivamente NDepend per l'analisi statica, ma tieni presente che probabilmente dovrai dedicare un giorno o due per analizzare effettivamente il carico di informazioni che fornisce e capire cosa significano effettivamente tutte le statistiche in termini di il tuo codice.

Ho avuto fortuna con il profiler di memoria .NET

Il profiler EQATEC ha svolto il lavoro qui.

L'attuale versione di SharpDevelop (3.1.1) ha un bel profiler integrato.È abbastanza veloce e si integra molto bene nell'IDE SharpDevelop e nel suo runner NUnit.I risultati vengono visualizzati in uno stile albero/elenco flessibile (usa LINQ per creare la tua selezione).Facendo doppio clic sul metodo visualizzato si passa direttamente al codice sorgente.

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

AQTime (sia perf che memoria) o ANTS (profilatore di prestazioni v4 o profilatore di memoria beta v5) qui.

Ho trovato il Profilo di memoria .NET ieri, e devo dire che ne sono rimasto molto colpito.
Oggi ordinerò la mia patente.

Sebbene non sia molto efficace nel profilare l'utilizzo della memoria, il profiler incluso in alcune versioni di Visual Studio svolge un ottimo lavoro nel profilare la velocità di esecuzione.

Qual è il tuo obiettivo?

Il tuo obiettivo è individuare affermazioni specifiche e avere un'idea approssimativa del contributo che contribuiscono al tempo di esecuzione totale, in modo da poter trovare modi per eseguirle in modo diverso?

Per questo, giuro su questo metodo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top