我可以在控制台应用程序中使用mvc迷你分析器吗?

本文关键字:分析器 mvc 控制台 应用程序 我可以 | 更新日期: 2023-09-27 18:08:09

如何在c#控制台应用程序中使用mvc-mini-profiler ?

同样好奇的是,mvc迷你分析器是否将实际配置的统计数据放在每个网页的左侧,或者只是手动完成自定义javascript代码?

我下载并运行mvc示例,无法找到将结果放在javascript弹出框中的代码。

我可以在控制台应用程序中使用mvc迷你分析器吗?

你可以!我已经创建了一个NuGet包,使它更容易运行。

检查MiniProfiler。窗口:http://nootn.github.com/MiniProfiler.Windows/

还有一篇关于如何设计一个优秀的控制台应用程序的详细文章:http://healthedev.blogspot.com.au/2012/07/performance-profiling-console-or-winwpf.html

核心计时对象(MiniProfiler)应该可以正常工作,就像被分析的连接钩子一样;但是你需要;

  • 添加自己的UI来显示结果
  • 定义你自己的作用域/生命周期(对于web来说很容易-只要http-request)
  • 提供自己的存储钩子(有一个扩展API,默认使用http-context IIRC)
  • 要么手动传递分析器,要么定义一个合理的方法来查找当前的分析器实例

我知道有些人已经将它的一部分用于WPF等,所以它可以被使用-但在我看来,选择有意义的部分,并使用它们来编写一个自定义库,增加一些很棒的

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());
}

这个代码片段产生如下输出:

PCName at 8/2/2017 8:44:36 AM
  有趣的子程序= 309.2ms
比;Step1 = 204.8ms
在比;AccessDb = 103.8ms (sql = 56.2ms in 2 cmd)
比;Step2 = 100.9ms

如您所见,输出包括自定义计时的简短摘要(在本例中为sql)。通过提供您自己的RenderPlainText()版本,您可以很容易地改变这种行为(例如,包括命令文本)。

查看更多信息:

  • 使它可用于。net控制台应用程序我应该在多线程控制台或服务应用程序中使用IAsyncProfilerProvider的哪个实现?li>如何从MiniProfiler V3文档页面升级