C# 自定义依赖项解析器会降低我的MVC应用程序的速度吗?

C# 自定义依赖项解析器会降低我的MVC应用程序的速度吗?,c#,asp.net-mvc,dependency-injection,ninject,C#,Asp.net Mvc,Dependency Injection,Ninject,对asp.net MVC 4使用自定义依赖项解析程序不会显著降低应用程序的速度吗?考虑到每个依赖项都会调用它,而不仅仅是我需要调用的依赖项(见下文) 有没有一种方法可以让GetService(Type serviceType)仅在我有ninject可以解析的接口时调用,而不是asp.net为每个依赖项调用GetService(如下所示),从而使其更快?我用的是Ninject,一开始它不是最快的 或者这是我不应该担心的事情? 谢谢 此时将显示输出窗口 GetService was called f

对asp.net MVC 4使用自定义依赖项解析程序不会显著降低应用程序的速度吗?考虑到每个依赖项都会调用它,而不仅仅是我需要调用的依赖项(见下文)

有没有一种方法可以让
GetService(Type serviceType)
仅在我有ninject可以解析的接口时调用,而不是asp.net为每个依赖项调用GetService(如下所示),从而使其更快?我用的是Ninject,一开始它不是最快的

或者这是我不应该担心的事情? 谢谢

此时将显示输出窗口

GetService was called for System.Web.Mvc.ITempDataProvider
GetService was called for System.Web.Mvc.Async.IAsyncActionInvoker
GetService was called for System.Web.Mvc.IActionInvoker
GetService was called for System.Web.Mvc.IViewPageActivator
GetService was called for ASP._Page_Views_Home_Index_cshtml ... GOES ON and ON....
你可能不该担心

如果您的ASP.NET MVC站点与普通站点类似,并且具有进程外调用,如

  • 访问数据库
  • 调用web服务
  • 访问文件系统
  • 等等
然后,页面请求时间的大部分(95+%)将在那里使用

一般来说,像NInject这样的DI容器速度很快;它们是可重用的库,它们的创建者通常致力于使它们尽可能快。事实上,它们没有做MVC的内部DependencyResolver还没有做的事情

有关此主题的更多信息,请阅读我的(容器不可知论)文章,或查看我的演讲

你还应该记住克努特的话,那就是。如果你担心的话:测量一下


这就是我在演讲中所做的,也是我所报道的。

+1评论-“过早优化是万恶之源”。@Mark Seeman。。。我是从你自己的书中学到依赖注入的,所以我接受:)
GetService was called for System.Web.Mvc.ITempDataProvider
GetService was called for System.Web.Mvc.Async.IAsyncActionInvoker
GetService was called for System.Web.Mvc.IActionInvoker
GetService was called for System.Web.Mvc.IViewPageActivator
GetService was called for ASP._Page_Views_Home_Index_cshtml ... GOES ON and ON....