我可以在控制台应用程序中使用mvc mini profiler吗?

时间:2011-09-11 11:15:22

标签: c# mvc-mini-profiler

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

同样好奇的是,mvc mini profiler是否将实际的配置文件统计信息放在每个网页的左侧,还是仅手动完成自定义javascript代码?

我下载并运行了mvc示例,但找不到将结果放入javascript弹出窗口的代码。

3 个答案:

答案 0 :(得分:20)

是的,你可以!我创建了一个NuGet包,使其更容易运行。

查看MiniProfiler.Windows: http://nootn.github.com/MiniProfiler.Windows/

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

答案 1 :(得分:11)

核心计时对象(MiniProfiler)应该正常工作,配置连接挂钩等应该正常工作;但是你需要;

  • 添加您自己的用户界面以显示结果
  • 定义您自己的范围/生命周期(对于Web来说很简单 - 只需要http请求)
  • 提供您自己的存储挂钩(有一个扩展API,默认使用http-context IIRC)
  • 手动传递探查器,或定义查找当前探查器实例的合理方法

我知道有些人已经将它的一部分用于WPF等,所以可以使用它 - 但IMO可能只选择有意义的位,并使用它们编写一个自定义库来添加一些很棒的东西。

答案 2 :(得分:3)

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   有趣的子程序= 309.2ms
  > Step1 = 204.8ms
  >> AccessDb = 103.8ms(sql = 56.2ms,2 cmds)
  > Step2 = 100.9ms

如您所见,输出包括自定义计时的简短摘要(在本例中为sql)。您可以通过提供自己的RenderPlainText()版本轻松更改此行为(例如,包含命令文本)。

有关详细信息,请查看:

相关问题