我想创建一个类,该类在层次结构中编写一个包含所有Method Calls的文件,并且需要Time from my Program。我不知道如何解决这个问题。我发现的只是StackTrace和StackFrame类,但这不是我真正需要的。我想开始我的程序并做一些动作。在后台,我的类编写了一个文件(例如XML),其结构如下:
Method1: 220ms
Method2: 180ms
Method3: 150ms
Method4: 25ms
Method5: 20ms
Method6: 110ms
有一种简单的方法吗?我想在System.Diagnostics和System.Reflection命名空间中搜索,但我不知道该怎么做。
到目前为止,我还没有写过一行代码,因为我需要一个很好的提示。
提前致谢。
答案 0 :(得分:1)
您可以尝试Mini Profiler。我通常用它来追踪执行时间。
然后跟踪方法执行此操作(作为文档中的mentioend) -
using StackExchange.Profiling;
...
var profiler = MiniProfiler.Current; // it's ok if this is null
using (profiler.Step("Set page title"))
{
ViewBag.Title = "Home Page";
}
using (profiler.Step("Doing complex stuff"))
{
using (profiler.Step("Step A"))
{ // something more interesting here
Thread.Sleep(100);
}
using (profiler.Step("Step B"))
{ // and here
Thread.Sleep(250);
}
}
它有一个很好的界面,可以显示网络每个步骤需要多长时间 -
对于基于Windows和控制台的应用程序,请使用此处提到的Windows扩展程序 -
http://nootn.github.io/MiniProfiler.Windows/
这里提到了这个过程 -
http://www.nootn.com.au/2012/07/performance-profiling-console-or-winwpf.html#.U8i-TDS1bcg