Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 4 Miniprofiler是';t分析赋值语句/快速步骤_Asp.net Mvc 4_Mvc Mini Profiler - Fatal编程技术网

Asp.net mvc 4 Miniprofiler是';t分析赋值语句/快速步骤

Asp.net mvc 4 Miniprofiler是';t分析赋值语句/快速步骤,asp.net-mvc-4,mvc-mini-profiler,Asp.net Mvc 4,Mvc Mini Profiler,我正在使用带有ASP.NET MVC 4的StackExchange Miniprofiler。我目前正试图用一个昂贵的表达式来分析一个类的成员变量的赋值,该表达式生成要赋值的值。Miniprofiler似乎不想分析赋值语句。我简化了代码以突出显示错误: public ActionResult TestProfiling() { var profiler = MiniProfiler.Current; using (profiler.Step("T

我正在使用带有ASP.NET MVC 4的StackExchange Miniprofiler。我目前正试图用一个昂贵的表达式来分析一个类的成员变量的赋值,该表达式生成要赋值的值。Miniprofiler似乎不想分析赋值语句。我简化了代码以突出显示错误:

    public ActionResult TestProfiling()
    {
        var profiler = MiniProfiler.Current;
        using (profiler.Step("Test 1"))
            Thread.Sleep(50);
        int sue;
        using (profiler.Step("Test 2"))
        {
            sue = 1;
        }
        if (sue == 1)
            sue = 2;
        using (profiler.Step("Test 3"))
        {
            Thread.Sleep(50);
            int bob;
            using (profiler.Step("Inner Test"))
            {
                bob = 1;
            }
            if (bob == 1)
                bob = 2;
        }
        return View();
    }
注意:if语句只是为了避免编译器警告

测试1和测试3显示在结果页面的Miniprofiler部分。测试2和内部测试不适用。但是,如果我用sleep语句替换test2或internaltest的内容,它们将输出到结果页面

这是怎么回事?即使我在一个不出现的测试中替换了简单赋值语句

using (profiler.Step("Test 2"))
{
    ViewModel.ComplexData = MyAmazingService.LongRunningMethodToGenerateComplexData();
}
对于一个更复杂的步骤,test2步骤仍然无法将输出输出到渲染的Miniprofiler部分。为什么Miniprofiler不分析赋值语句

编辑:代码示例现在对应于文本

Edit2:进一步挖掘之后,问题似乎不在于赋值语句。似乎输出结果中是否显示某些内容取决于执行所需的时间。i、 e

using (profiler.Step("Test 2"))
{
    sue = 1;
    Thread.Sleep(0);
}
使用上述代码,测试2不会显示在Miniprofiler结果中

using (profiler.Step("Test 2"))
{
    sue = 1;
    Thread.Sleep(10);
}
使用上述代码,测试2现在显示在Miniprofiler结果中


因此,我的长运行代码生成复杂数据的速度似乎相当快。。。但是,Miniprofiler的预期行为是不会显示花费非常少时间的步骤吗?

问题似乎在于Miniprofiler不会显示执行时间小于3ms的步骤的结果

编辑:来自Miniprofiler文档

TritiliteDurationThresholdMillics任何持续时间小于或等于此值的计时步骤都将默认隐藏在UI中;默认值为2.0毫秒

只需单击探查器结果右下角的“显示平凡”

这应该显示所有操作