如何在C#控制台应用程序中使用mvc-mini-profiler?
另外,我很好奇,mvc mini profiler是否将实际的分析统计数据放在每个网页的左侧,还是仅仅是手动添加的自定义JavaScript代码?
我下载并运行了mvc示例,但找不到将结果放入javascript弹出窗口的代码。
如何在C#控制台应用程序中使用mvc-mini-profiler?
另外,我很好奇,mvc mini profiler是否将实际的分析统计数据放在每个网页的左侧,还是仅仅是手动添加的自定义JavaScript代码?
我下载并运行了mvc示例,但找不到将结果放入javascript弹出窗口的代码。
可以!而且我创建了一个NuGet包,使得它更容易运行。
请查看 MiniProfiler.Windows: http://nootn.github.com/MiniProfiler.Windows/
此外,关于如何设计用于性能分析的良好控制台应用程序的详细文章,请参阅: http://healthedev.blogspot.com.au/2012/07/performance-profiling-console-or-winwpf.html
MiniProfiler V4(目前为预发布版本)有一个名为RenderPlainText()
的方法。您可以在控制台或多线程异步服务器应用程序中直接使用它,无需进行任何其他设置:
public void Foo()
{
MiniProfiler.Start("Interesting subroutine");
using (MiniProfiler.Current.Step("Step1"))
{
using (MiniProfiler.Current.Step(nameof(AccessDb)))
{
AccessDb();
}
Thread.Sleep(100);
}
using (MiniProfiler.Current.Step("Step2"))
{
Thread.Sleep(100);
}
MiniProfiler.Stop();
Console.WriteLine(MiniProfiler.Current.RenderPlainText());
}
如您所见,输出包括自定义计时(在此情况下为sql)的简短摘要。您可以通过提供您自己的PCName at 8/2/2017 8:44:36 AM
有趣的子程序 = 309.2毫秒
> 步骤1 = 204.8毫秒
>> 访问Db = 103.8毫秒 (sql = 56.2毫秒 in 2 cmds)
> 步骤2 = 100.9毫秒
RenderPlainText()
版本来轻松更改此行为(例如,包含命令文本)。MiniProfiler.Settings.ProfilerProvider = new SingletonProfilerProvider();
就足够了。这一点在 GitHub 上的原始文档中缺失了 ConsoleApp 的用例说明。 - sll