是否有C#属性(用于方法)来计算此方法的执行时间?还有另一种方式吗?
答案 0 :(得分:5)
您可以使用面向方面编程来执行此操作。从PostSharp看这个例子:http://www.sharpcrafters.com/solutions/performance
这里的技巧是定义在编译时注入代码的行为。一个用例是为您需要的方法添加时序。
答案 1 :(得分:4)
还有其他方式: 您可以使用VS Profiler来检查执行特定方法的次数和时长。
或者您可以使用属性来分析性能的第三方库,请参阅此相关主题What Are Some Good .NET Profilers?
答案 2 :(得分:3)
您可以使用Timer
,在函数调用之前启动它,然后在方法完成后停止它。然后以更好的形式输出时间!
或强>
如果您不想编写手动代码,请查看Visual Studio Profilers或SO - Best Profilers。
答案 3 :(得分:2)
如果您想编写一些测试代码来分析各种功能或部分,您可以使用System.Diagnostics.Stopwatch来跟踪已用时间。像这样:
public void DoSomething(){
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
//stuff you want to time
stopWatch.Stop();
System.Console.Writeln(String.Format("Total Ticks: {0}", stopWatch.ElapsedTicks))
}
如果你想做更普遍的事情(即弄清楚程序的哪些部分很慢),那么就像使用其他一些答案一样使用分析器。
答案 4 :(得分:0)
简单如馅饼:
答案 5 :(得分:-2)
这样的事情:
var oldTime = DateTime.Now;
//your code here
var resultTimeSpan = DateTime.Now - oldTime;