问题
Obviously I can do and DateTime.Now.After
- DateTime.Now.Before
but there must be something more sophisticated.
Any tips appreciated.
回答1:
System.Environment.TickCount and the System.Diagnostics.Stopwatch class are two that work well for finer resolution and straightforward usage.
See Also:
- Is DateTime.Now the best way to measure a function’s performance?
- High resolution timer in .NET
- Environment.TickCount vs DateTime.Now
- What’s the best way to benchmark programs in Windows?
回答2:
I would definitely advise you to have a look at System.Diagnostics.Stopwatch
And when I looked around for more about Stopwatch I found this site;
Beware of the stopwatch
There mentioned another possibility
Process.TotalProcessorTime
回答3:
Use a Profiler
Your approach will work nevertheless, but if you are looking for more sophisticated approaches. I'd suggest using a C# Profiler.
The advantages they have is:
- You can even get a statement level breakup
- No changes required in your codebase
- Instrumentions generally have very less overhead, hence very accurate results can be obtained.
There are many available open-source as well.
回答4:
Tickcount is good, however i suggest running it 100 or 1000 times, and calculating an average. Not only makes it more measurable - in case of really fast/short functions, but helps dealing with some one-off effects caused by the overhead.
来源:https://stackoverflow.com/questions/380919/what-is-the-best-way-to-measure-execution-time-of-a-function