Qual è il modo migliore per misurare il tempo di esecuzione di una funzione? [duplicare]
-
22-08-2019 - |
Domanda
Questa domanda ha già una risposta qui:
Ovviamente posso faccio e DateTime.Now.After
-. DateTime.Now.Before
ma ci deve essere qualcosa di più sofisticato
Eventuali suggerimenti apprezzato.
Soluzione
System.Environment.TickCount e la System.Diagnostics.Stopwatch classe sono due che funzionano bene per la risoluzione più fine e l'uso semplice.
Si veda anche:
Altri suggerimenti
avrei sicuramente vi consiglio di dare un'occhiata a System.Diagnostics.Stopwatch
E quando ho guardato intorno per di più su Stopwatch ho trovato questo sito;
Non menzionato un'altra possibilità
Process.TotalProcessorTime
Usa un Profiler
Il tuo approccio funzionerà comunque, ma se siete alla ricerca di approcci più sofisticati. Io suggerirei di utilizzare un C # Profiler .
I vantaggi che hanno è:
- È possibile anche ottenere un livello di istruzione rottura
- Non ci sono cambiamenti necessari nella vostra codebase
- Instrumentions generalmente sono molto meno overhead, quindi risultati molto precisi può essere ottenuto.
Ci sono molti disponibili open-source pure.
TickCount è buona, tuttavia vi suggerisco di eseguirlo 100 o 1000 volte, e calcolando una media. Non solo rende più misurabile -. In caso di funzioni veramente veloce / breve, ma aiuta trattare con alcuni effetti una tantum causati dal sovraccarico