Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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 我有一个非常慢的页面,我怎么能知道它是M,V,还是C?什么样的计时机制才是准确的?_Asp.net Mvc_Optimization_Benchmarking - Fatal编程技术网

Asp.net mvc 我有一个非常慢的页面,我怎么能知道它是M,V,还是C?什么样的计时机制才是准确的?

Asp.net mvc 我有一个非常慢的页面,我怎么能知道它是M,V,还是C?什么样的计时机制才是准确的?,asp.net-mvc,optimization,benchmarking,Asp.net Mvc,Optimization,Benchmarking,控制器对模型进行一些调用,然后向视图返回一些数据。这个视图实际上,很遗憾,这不是我的错,它包含了大量的内联查询和更多的模型调用,是的,我知道。不管怎样,我的任务是优化这个非常慢的页面,我试图找出如何判断哪件事花费的时间最多。我只是想在页面所做的每件“事情”的开始和结束处放置一个计时器,并将它们输出到带有行号或其他内容的日志中。但不确定最准确的方法是什么 //in controller StartTimer(); var something = model.something.getsomethi

控制器对模型进行一些调用,然后向视图返回一些数据。这个视图实际上,很遗憾,这不是我的错,它包含了大量的内联查询和更多的模型调用,是的,我知道。不管怎样,我的任务是优化这个非常慢的页面,我试图找出如何判断哪件事花费的时间最多。我只是想在页面所做的每件“事情”的开始和结束处放置一个计时器,并将它们输出到带有行号或其他内容的日志中。但不确定最准确的方法是什么

//in controller
StartTimer();
var something = model.something.getsomething(someID);
StopTimerAndLog(3); //line number

<!-- in view -->
<%StartTimer();
var something = model.somethingelse.getanotherthing(someotherID);
StopTimerAndLog(2);%>
诸如此类


接下来的问题是使用什么样的计时机制,我相信这肯定已经有问题了。但我不知道我的处境是否与众不同。。。有什么想法吗?

如果你真的想这样测量,我会使用:


如果您想要一些非常详细的内容,并且不需要编写任何额外的代码……我建议使用探查器。它会告诉你到底是什么花了这么长时间以及为什么。我个人最喜欢的是。

如果你真的想这样测量,我会使用:


如果您想要一些非常详细的内容,并且不需要编写任何额外的代码……我建议使用探查器。它会告诉你到底是什么花了这么长时间以及为什么。我个人最喜欢的是。

感谢您的快速响应,这让我现在就可以尝试一些东西,同时我等待更多反馈,支持Justin的后一个建议。使用像ANTS或dotTrace这样的探查器是比printf调试好得多的方法。+1:@Justin Niessner-只是好奇探查器是否可以用于正确的应用程序负载测试?或者任何推荐的工具?@VoodooChild-它不能单独用于负载测试,不能。分析器通常在后台运行,并在应用运行时监视应用。它实际上并不在应用程序中执行任何操作。但是,您可以将其与Visual Studio中的负载测试功能配对,以通过这种方式监控代码在负载下的性能。@Justin Niessner:谢谢:,您提到的Visual Studio中的负载测试功能是什么?谢谢您的快速响应,这给了我一些尝试的权利,而我现在等待更多的反馈,以涓涓细流第二贾斯汀的后一个建议。使用像ANTS或dotTrace这样的探查器是比printf调试好得多的方法。+1:@Justin Niessner-只是好奇探查器是否可以用于正确的应用程序负载测试?或者任何推荐的工具?@VoodooChild-它不能单独用于负载测试,不能。分析器通常在后台运行,并在应用运行时监视应用。它实际上并不在应用程序中执行任何操作。但是,您可以将其与Visual Studio中的负载测试功能配对,以通过这种方式监视代码在负载下的性能。@贾斯汀·尼斯纳:谢谢:,您提到的Visual Studio中的负载测试功能是什么?
var watch = new StopWatch();
watch.Start();
var something = model.something.getSomething(someID);
watch.Stop();

var time = watch.Elapsed;