2009-02-21 11 views
6

Microsoft crea questo software chiamato "Visual Studio 2008 Professional". Ho trovato che non sembra esserci un profiler delle prestazioni dell'applicazione o qualcosa di simile in esso, facendo sembrare che non sia così "professionale" per me.Come eseguire il profilo delle prestazioni in Visual Studio 2008 "Pro"

Se Microsoft non include un profiler, quali sono le opzioni di terze parti per la profilazione temporale per Visual Studio 2008? Sarebbe preferibile gratis, in quanto questo è per gli studenti uni: P

risposta

4

Personalmente, utilizzo il profiler Red Gate.

Altri giurano sul JetBrains.

Quelle sembrano essere le opzioni, e non c'è molto tra di loro.

0

Uso il dotTrace di JetBrain e funziona abbastanza bene.

2

Io uso il Team System Edition. Questo viene fornito con un profiler che è abbastanza buono. Ci sono altre opzioni là fuori:

Speranza che aiuta. Nota: nessuno di questi è gratuito.

profiling Felice :)

3

io uso JetBrains dotTrace profiler. Questo è un profiler commerciale. (Full disclosure: ricevo una licenza gratuita come MVP E ha rivelato molto utile però..)

C'è anche la libera CLR Profiler for .NET 2.0 e an article explaining how to use it.

+1

Si noti che quello libero è in realtà molto buono per * memoria * allocazione tracing ma l'analisi perf dritto esso percorsi gli altri sistemi. No, quelli gratuiti che conosco supportano il profiling in modalità mista o il campionamento piuttosto che la strumentazione. AQTime e il sistema del team entrambi lo fanno – ShuggyCoUk

+0

Ho appena provato la demo di dotTrace. Speravo che non sarebbe stato quello che mi aspettavo, ma lo è stato. Ti inonda di cose meravigliosamente presentate che non contano. Ciò che importa è che trascorre ben oltre il 90% del tempo nella chiamata a 'myBitmap.SetPixel', e il resto piccolo in vari punti come intersecare un raggio con una sfera, come facilmente mostrato con non molte pause. Ho girato tutto intorno a DT, ma nulla di quello che è successo mi ha detto cosa mi hanno detto le pause. –

+0

@MikeDunlavey: Non ho davvero abbastanza contesto per capire quel commento, ma dotTrace mi ha sicuramente aiutato a trovare i colli di bottiglia in Noda Time ... –

6

ci sono un paio di profiler libero, non completi o levigate come quelle commerciali, ma possono sicuramente aiutare molto:

Eqatec - Questo è stato progettato per Windows CE, ma funziona bene per le applicazioni normali .

Soft Prodigy Profile Sharp - Questo è in realtà un progetto open source scritto in C#, quindi è possibile armeggiare con esso se si desidera.

0

same answer as:

rimontato: Lei ha chiesto che cosa le vostre opzioni erano. Se il tuo cuore è impostato sulla profilazione, cerca un profiler.

D'altra parte, se si ha effettivamente un problema di prestazioni da trovare, il metodo semplice funziona altrettanto bene o meglio di quasi ogni profiler. Dico quasi tutti, perché in alcuni profiler si può effettivamente scoprire cosa è necessario sapere, che è il costo del tempo attribuibile alle singole istruzioni, in particolare le istruzioni di chiamata.

Il tempo-tempo di un'istruzione è la quantità di tempo che verrebbe salvata se l'istruzione potesse essere rimossa, e una buona stima di essa sarebbe la frazione dei campioni di pila di chiamata che la contengono. Non è necessario stimare tale frazione con alta precisione.Se l'istruzione è su 5 campioni su 10, il costo è probabilmente compreso tra il 45% e il 55%. Non importa: se riuscissi a sbarazzartene, risparmieresti il ​​costo.

Quindi trovare problemi di prestazioni non è difficile. Basta prendere un numero di campioni di stack di chiamata, raccogliere il set di istruzioni su quei campioni e classificare le istruzioni in base alla frazione di campioni che li contengono. Tra le istruzioni ad alta percentuale ci sono alcune che puoi ottimizzare, e non devi indovinare dove sono.

Sto semplificando un po ', perché spesso è utile esaminare più informazioni di stato che solo lo stack di chiamate, per vedere se è effettivamente necessario un lavoro svolto. Ma spero che il punto sia fatto.

Le persone esprimono dubbi sul fatto che potrebbe funzionare in presenza di ricorsione o lavorare su programmi di grandi dimensioni. Un piccolo pensiero (e la sperimentazione) mostra che le obiezioni non trattengono l'acqua.

+0

Tuttavia la mia domanda è specifica per Visual Studio 2008 –

+0

Funziona in qualsiasi IDE, incluso VS . –