如何衡量依赖建设时间?

时间:2017-04-27 00:06:42

标签: c# asp.net-mvc visual-studio profiling autofac

我正在使用使用C#和ASP.NET MVC 5编写的开源电子商务系统。该软件包大量使用autofac和IoC。它提供了一个插件架构,使用此电子商务包的开发人员可以使用它来创建插件,并使用该插件架构本身。

在一些非常神秘的情况下(不仅仅是当应用程序域回收时),它需要一分钟来执行页面加载。我已经苦苦挣扎了一段时间才能知道这么长时间。

我无法使用内置的Web服务器从Visual Studio中运行应用程序,我甚至无法将Visual Studio调试器连接到运行它的IIS进程。所以我无法使用需要Visual Studio的分析器。

我已经设法让Glimpse工作了,但是Glimpse没有捕捉到花费很长时间的事件。在时间线中,它显示“开始请求”,花费0毫秒,然后7到50秒后,下一个事件开始,例如,“授权:Home.Index”,它说它花了.01女士。

世界上7到50秒间隔期间发生了什么?我怎么能找到它?

这是一个有点奇怪的线索:今天,在我们完全没有改变之后,当浏览器在我们的内部时,突然出现问题或多或少消失(大部分时间,至少是暂时的)网络,但当浏览器在我们网络外的计算机上时,问题仍然存在。就好像某个插件正在进行某种类型的DNS查找,内部时间(成功或失败)要比外部时间少得多。

可以想象,一个控制器正在实例化,一些插件或其他插件的依赖或其他依赖是在构建时或类似的东西上进行某种网络查找。所以我试图弄清楚如何测量MVC构建Home控制器的每个依赖关系的时间。到目前为止,解决方案一直困扰着我。

我想我可以追踪每个依赖项的所有实现,并找出最终会被使用的实现,并将日志消息放入其构造函数代码中。除了一些插件不提供源代码。至少我可以为那些那些做的,无论如何,但是有一些我可以使用的探查器或工具不需要Visual Studio并且可以在IIS下运行ASP.NET MVC进程吗?

0 个答案:

没有答案