Sto cercando un profiler per la mia applicazione C# in fase di sviluppo in Visual Studio 2008. Sto cercando qualcosa che sia poco costoso (open source è preferito) e che può essere integrato in VS2008. Ho trovato il Visual Studio Profiler ma non so come usarlo. Ho installato la versione Stand Alone che dipende da Visual Studio (non da solo, immagino?) Ma non compare mai nulla nel menu Strumenti come dice il loro passaggio.Dove posso trovare un profiler per le applicazioni C# da utilizzare in Visual Studio 2008?
risposta
Ecco un elenco di open source .Net profilers.
Ho usato e mi piace il Ants-Profiler da Red Gate, ma costa denaro (ne vale la pena, IMHO).
Il Visual Studio Profiler è solo parte del sistema Team. Non è incluso in Visual Studio Professional.
C'è un profiler .NET gratuito chiamato nprof, ma non è ancora stato rilasciato e può essere piuttosto volatile. Inoltre, ci sono alcuni profiler commerciali eccellenti come ANTS Profiler from Red Gate; tuttavia, questi non sono a basso costo.
Non ho mai usato ANTS Profiler, ma non puoi sbagliare con qualsiasi cosa fatta da Red Gate a meno che tu non abbia un budget. – TheTXI
Se ricordo correttamente, Red Gate ha una versione di prova di 14 giorni. Consiglierei sicuramente di usarlo. L'ho consigliato ad altre persone e hanno finito per acquistare una licenza. – bastijn
C'è qualche discussione sui profiler per .NET in this stackoverflow thread. Ho usato alcuni CLR Profiler e mi ha aiutato a risolvere alcuni problemi di prestazioni nel software. Potrebbe valere la pena provare. Microsoft ha pubblicato a guide on how to use the CLR Profiler.
La mia raccomandazione è dotTrace. Non è gratuito, il prezzo è di 170 euro per la licenza personale.
Utilizziamo dotTrace nella nostra azienda. È molto facile da usare e molto utile. Lo consiglio :) – Beatles1692
Anche io uso la sua versione di prova, fino a quando dura :) e adoro la sua semplicità e il modo in cui gestisce i progetti multilingua. http://stackoverflow.com/questions/906915/c-code-performance/907676#907676 –
L'ho usato e funziona molto bene per il profiling delle prestazioni, purché la soluzione non sia troppo grande. Ho provato a eseguire 5000 unit test in modalità profiling e la mia memoria non era abbastanza (e ho 8 Gigs nel mio pc di sviluppo). Quindi dottracer richiede molte risorse. – crauscher
Se si vuole solo fare memoria di profiling, il .NET Memory Profiler è eccellente. Ha un periodo di prova e un piccolo costo dopo - ne vale la pena. Se vuoi spendere un po 'di soldi, lo DevPartner Studio è molto buono.
Attualmente sto cercando solo il tempo di esecuzione per metodo, ma il profilo della memoria potrebbe arrivare più tardi – Malfist
Posso garantire per .NET Memory Profiler. Chi dice che non puoi avere perdite di memoria in .NET! –
non sono perdite di memoria nel senso tradizionale, ma sì, puoi averle. GC non è perfetto, anche in Java. – Malfist
Verificare il EQATEC profiler, gratuito e funziona piuttosto bene. Funziona anche per ASP.NET e .NET CF.
Per l'ottimizzazione delle prestazioni, al contrario della diagnostica della memoria, c'è un simple way to do it.
È controintuitivo, ma tutto ciò che dovete fare è eseguire il programma sotto l'IDE, e mentre è lento, interromperlo più volte, esaminando lo stack di chiamate per vedere perché sta facendo tutto ciò che sta facendo. Le probabilità sono eccellenti che più campioni mostreranno che sta facendo qualcosa che potresti eliminare. Il tempo risparmiato è all'incirca uguale alla frazione di campioni che conteneva il codice che hai corretto.
È "veloce e sporco", ma a differenza della maggior parte dei profiler, individua le dichiarazioni effettive che richiedono attenzione, non solo le funzioni che le contengono. Fornisce anche una stima approssimativa della velocità che ci si può aspettare fissandoli. Non è confuso dalla ricorsione, ed evita la difficoltà della call-tree che un problema potrebbe essere piccolo in qualsiasi ramo, ma potrebbe essere grande se viene distribuito su molti settori.
Prendo diversi campioni N, di solito non più di 20. Se c'è un hotspot o un metodo canaglia chiama da qualche parte mid-stack, prendendo una frazione F del tempo di esecuzione, quindi il numero di campioni che mostrerà che è NF + - sqrt (NF (1-F). Se N = 20 e F = 0.15, ad esempio, il numero di campioni che mostrerà è 3 + - 1.6, quindi ho un'eccellente possibilità di trovarlo.
Spesso F è più simile a 0,5, quindi il numero di campioni che lo mostrano è 10 + - 2,2, quindi non sarà perso.
Si noti che questo non ha assolutamente nulla a che fare con quanto è veloce il codice o con quale frequenza viene eseguito. Se l'ottimizzazione lo farà risparmiare una certa percentuale di tempo, che determina quale percentuale di campioni lo visualizzerà per voi.
Di solito ci sono più posti da ottimizzare. Se il problema 1 ha F1 = 0.5, e il problema 2 ha F2 = 0.1, allora se risolvi il problema 1 (raddoppiando la velocità del programma), allora F2 di solito aumenta di quel fattore, a 0,2. Così puoi farlo di nuovo ed essere sicuro di trovare il problema 2. In questo modo, puoi abbattere una serie di problemi, fino a quando il codice è praticamente ottimale.
Haha, divertiti, ci vediamo tra qualche decennio! Cosa succede se hai milioni di chiamate? – leppie
@leppie: Pardon? Se intendi milioni di chiamate al secondo, non importa. Ciò che conta è la percentuale di tempo. E a proposito, questo può essere fatto in una frazione del tempo necessario per installare e imparare uno strumento. –
È stato questo downvote a causa del fatto di non pensare che funzionerà o semplicemente di non "piacergli"? –
- 1. Posso utilizzare .NET 4.0 beta in Visual Studio 2008?
- 2. Dove posso trovare WcfTestClient.exe (parte di Visual Studio)
- 3. Dove posso trovare Microsoft.TeamFoundation.VersionControl.Client.dll nell'installazione di Visual Studio 2015?
- 4. Progetti Visual Studio 2008 da Visual Studio 2010 senza conversione
- 5. Come includere e dove trovare pthread.h per Visual Studio?
- 6. Come utilizzare IronPython con Visual Studio 2008
- 7. È possibile utilizzare C# 4.0 con Visual Studio 2008?
- 8. Dove inserire le dipendenze DLL nel progetto Visual Studio C++?
- 9. Non riesco a trovare xsd.exe in Visual Studio 2008?
- 10. POD in Visual Studio 2008
- 11. Sviluppo di applicazioni Android con Visual Studio 2008
- 12. Dove posso trovare GACUtil?
- 13. Come configurare Visual Studio 2008 per utilizzare IIS Express?
- 14. C'è un modo per trovare una tabella in un file DBML in Visual Studio 2008?
- 15. Dove posso trovare temi di colore per Visual Assist X?
- 16. Downgrade C# Project da Visual Studio 2010 a Visual Studio 2008
- 17. Dove posso trovare gli indicatori colorati da utilizzare in Cocoa?
- 18. Analisi codice mancante da Visual Studio 2008
- 19. Aggiungi libreria al progetto C++ di Visual Studio 2008
- 20. Visual Studio 2008, C++ senza piattaforma x64
- 21. Dove posso trovare un semplice tutorial di ASP.NET MVC (C#)?
- 22. Complessità ciclomatica per Visual Studio 2008
- 23. dove posso trovare mysql.data.dll per C#
- 24. Come posso installare MVC in Visual Studio 2008?
- 25. Come aggiungere Eventi pagina per ASP.NET in Visual Studio 2008
- 26. Tocca digitare in Visual Studio 2008
- 27. Parentesi collegate in Visual Studio 2008
- 28. Evidenziazione della sintassi C++ per Visual Studio 2008?
- 29. Utilizzando ILDASM con Visual Studio 2008
- 30. Prefast con Visual Studio 2008
Stai utilizzando VS express? – GEOCHET
No, ho la versione Pro – Malfist