Come posso sapere quanto tempo impiega il mio codice C# per l'esecuzione?Quanto tempo impiega il mio codice per l'esecuzione?
risposta
Partenza classe Stopwatch
:
Stopwatch sw = new Stopwatch();
sw.Start();
// your code here
sw.Stop();
TimeSpan elapsedTime = sw.Elapsed;
Verificare la classe Stopwatch.
La classe Stopwatch
offre tempi di precisione in .NET. È in grado di misurare il tempo con una sensibilità di circa 100 secondi di nanosecondi (frazioni di millisecondi). Per ottenere la risoluzione esatta, leggere il valore di Stopwatch.Frequency
.
var timer = System.Diagnostics.Stopwatch.StartNew();
// Run code here.
var elapsed = timer.ElapsedMilliseconds.
Inoltre, assicurarsi di eseguire il codice più volte (il numero di volte che è fattibile) per ottenere una migliore tempo medio, così come per ridurre gli effetti delle fluttuazioni di carico della CPU.
Come altri hanno detto, la classe Stopwatch
è un bene per il semplice lato distribuzione delle cose. Altre punte da tenere a mente, però:
- Il codice può generare oggetti che dovranno essere garbage collection dopo aver fermato il cronometro
- Al contrario la vostra sincronizzazione può includere altri oggetti in fase di garbage collection, anche se non hanno nulla a che fare con il tuo codice
- Se inizi a cronometrare prima di eseguire il tuo metodo per la prima volta, includerà il tempo JIT
- Se impieghi un tempo molto breve, ciò porta a risultati molto imprevedibili - per il benchmarking Tendo a preferire il codice in esecuzione per molti secondi, per rendere conto per l'applicazione di essere interrotto da altri processi, ecc
Se siete interessati a benchmarking, ho il progetto MiniBench che devo riuscire a lavorare di nuovo ad un certo punto - non è del tutto dove voglio che finiscono, ma è un inizio. Parlo di più di ciò che voglio ottenere con esso in this blog post.
Si consiglia di utilizzare uno strumento di profilatura come ANTS per verificare la velocità dell'applicazione e trovare il codice lento. Ciò ti consentirà di eseguire un test riga per riga dei tempi di esecuzione.
Se vuoi semplicemente, basta mettere un ciclo di ripetizione N intorno ad esso e utilizzare StopWatch (o solo un orologio da polso) e dividere per N. Ad esempio, se vuoi microsecondi, lascia N = 1000000. Se sei preoccupato per quanto riguarda il sovraccarico del ciclo, basta srotolarlo di un fattore di 10.
- 1. Quanto tempo impiega Glibc per compilare?
- 2. recupera quanto tempo impiega il sottoprocesso python
- 3. Quanto tempo impiega troppo uno script?
- 4. Gestione delle eccezioni. Quanto tempo impiega prendere?
- 5. Quanto tempo impiega la mia applicazione Python per funzionare?
- 6. Quanto tempo impiega un programma Python per l'esecuzione?
- 7. Come posso calcolare quanto tempo impiega una funzione in jQuery?
- 8. PHP - Arresta e cattura il codice che impiega troppo tempo
- 9. Come verificare quanto tempo impiega la query MySQL?
- 10. Per quanto tempo jsFiddle ospita il tuo codice?
- 11. Qualche strumento che indica per quanto tempo ciascun metodo impiega per essere eseguito?
- 12. Timing per quanto tempo ciascun file impiega per compilare con ant
- 13. Il cambio di contesto impiega tempo significativo?
- 14. L'app impiega troppo tempo per l'avvio
- 15. ricerca npm impiega molto tempo
- 16. Xcode impiega troppo tempo per compilare il codice bit al momento della preparazione dell'archivio
- 17. Quanto tempo impiega una query che restituisce 5 milioni di record?
- 18. Aggiornamento di eclissi che impiega troppo tempo
- 19. DOM impiega troppo tempo a reagire
- 20. La sincronizzazione repo AOSP impiega troppo tempo
- 21. Per quanto tempo il database SQL Web rimarrà nei browser?
- 22. Salta la funzione se impiega troppo tempo
- 23. Come posso interrogare quanto tempo impiega un ripristino del database SQL?
- 24. Android: Firebase impiega troppo tempo per recuperare i dati
- 25. MvcBuildViews in MS2015 impiega molto tempo
- 26. Redis impiega troppo tempo a rispondere
- 27. Visual Studio 2015 impiega troppo tempo per l'avvio
- 28. Quanto tempo devo preparare per SCJP?
- 29. Per quanto tempo Facebook caching le miniature di condivisione?
- 30. Perché Android AVD impiega così tanto tempo per avviarsi?
Grazie personali per MiniBench, Jon - è diventato per me uno strumento inestimabile. –
@C Rogers: probabilmente l'hai usato più di quanto ne abbia io! Ci tornerò davvero un po 'di tempo ... la scrittura è stata piuttosto presa in considerazione per il momento però :( –