Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.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
C# 温莎城堡3.2解决性能问题_C#_.net_Dependency Injection_Castle Windsor_Windsor 3.0 - Fatal编程技术网

C# 温莎城堡3.2解决性能问题

C# 温莎城堡3.2解决性能问题,c#,.net,dependency-injection,castle-windsor,windsor-3.0,C#,.net,Dependency Injection,Castle Windsor,Windsor 3.0,我们有一个大型web应用程序,多年来一直在使用Windsor Castle。该应用程序在370项服务中注册了约700个组件。它们几乎都属于一个根,即入口点控制器。当web请求到来时,我们解析该入口控制器并让它处理该请求。问题是解析根组件大约需要35毫秒。我会说这对我来说听起来很难 我的问题是上面的数字听起来是否正常?有谁能给我一个提示,告诉我我可以做些什么来缩短解析时间?或者检查我是否做错了什么 谢谢:)解析对象图所需的时间取决于许多因素,例如: 对象图形的大小 组件的注册生活方式以及这些生活

我们有一个大型web应用程序,多年来一直在使用Windsor Castle。该应用程序在370项服务中注册了约700个组件。它们几乎都属于一个根,即入口点控制器。当web请求到来时,我们解析该入口控制器并让它处理该请求。问题是解析根组件大约需要35毫秒。我会说这对我来说听起来很难

我的问题是上面的数字听起来是否正常?有谁能给我一个提示,告诉我我可以做些什么来缩短解析时间?或者检查我是否做错了什么


谢谢:)

解析对象图所需的时间取决于许多因素,例如:

  • 对象图形的大小
  • 组件的注册生活方式以及这些生活方式在图形中的位置(显然,如果根对象是单例对象,解析速度非常快)
  • 您在构造函数中所做的工作量
因此,如果没有进一步的信息,就没有什么可说的了。然而,我要说的是,35女士是相当多的,即使是对温莎城堡。在解析881个瞬态组件的对象图时,我在6个最常用的DI容器上运行了一个小型基准测试,最慢的容器(Ninject)需要5毫秒,而最快的容器(简单注入器)需要0.01毫秒(在我的机器上)来解析该图

Container       |  ms.
----------------+-----
Simple Injector | 0.01
StructureMap    | 0.50
Autofac         | 0.77
Unity           | 1.04
Castle Windsor  | 3.96
Ninject         | 5.03
从这个基准来看,我想说35毫秒对于用Castle Windsor解析这样大小的对象图有点慢。因此,请确保您只需检查null并存储传入的依赖项即可。这样你就可以了


顺便说一句,您可以找到更广泛的基准。

解析对象图所需的时间取决于许多因素,例如:

  • 对象图形的大小
  • 组件的注册生活方式以及这些生活方式在图形中的位置(显然,如果根对象是单例对象,解析速度非常快)
  • 您在构造函数中所做的工作量
因此,如果没有进一步的信息,就没有什么可说的了。然而,我要说的是,35女士是相当多的,即使是对温莎城堡。在解析881个瞬态组件的对象图时,我在6个最常用的DI容器上运行了一个小型基准测试,最慢的容器(Ninject)需要5毫秒,而最快的容器(简单注入器)需要0.01毫秒(在我的机器上)来解析该图

Container       |  ms.
----------------+-----
Simple Injector | 0.01
StructureMap    | 0.50
Autofac         | 0.77
Unity           | 1.04
Castle Windsor  | 3.96
Ninject         | 5.03
从这个基准来看,我想说35毫秒对于用Castle Windsor解析这样大小的对象图有点慢。因此,请确保您只需检查null并存储传入的依赖项即可。这样你就可以了


顺便说一句,您可以找到更广泛的基准。

解析对象图所需的时间取决于许多因素,例如:

  • 对象图形的大小
  • 组件的注册生活方式以及这些生活方式在图形中的位置(显然,如果根对象是单例对象,解析速度非常快)
  • 您在构造函数中所做的工作量
因此,如果没有进一步的信息,就没有什么可说的了。然而,我要说的是,35女士是相当多的,即使是对温莎城堡。在解析881个瞬态组件的对象图时,我在6个最常用的DI容器上运行了一个小型基准测试,最慢的容器(Ninject)需要5毫秒,而最快的容器(简单注入器)需要0.01毫秒(在我的机器上)来解析该图

Container       |  ms.
----------------+-----
Simple Injector | 0.01
StructureMap    | 0.50
Autofac         | 0.77
Unity           | 1.04
Castle Windsor  | 3.96
Ninject         | 5.03
从这个基准来看,我想说35毫秒对于用Castle Windsor解析这样大小的对象图有点慢。因此,请确保您只需检查null并存储传入的依赖项即可。这样你就可以了


顺便说一句,您可以找到更广泛的基准。

解析对象图所需的时间取决于许多因素,例如:

  • 对象图形的大小
  • 组件的注册生活方式以及这些生活方式在图形中的位置(显然,如果根对象是单例对象,解析速度非常快)
  • 您在构造函数中所做的工作量
因此,如果没有进一步的信息,就没有什么可说的了。然而,我要说的是,35女士是相当多的,即使是对温莎城堡。在解析881个瞬态组件的对象图时,我在6个最常用的DI容器上运行了一个小型基准测试,最慢的容器(Ninject)需要5毫秒,而最快的容器(简单注入器)需要0.01毫秒(在我的机器上)来解析该图

Container       |  ms.
----------------+-----
Simple Injector | 0.01
StructureMap    | 0.50
Autofac         | 0.77
Unity           | 1.04
Castle Windsor  | 3.96
Ninject         | 5.03
从这个基准来看,我想说35毫秒对于用Castle Windsor解析这样大小的对象图有点慢。因此,请确保您只需检查null并存储传入的依赖项即可。这样你就可以了


顺便说一句,你可以找到一个更广泛的基准。

你是如何衡量这一点的?在发布模式下编译并在调试器外部运行时,您是否对其进行了基准测试?是的,我使用秒表测量解析并将运行时间写入日志所需的时间。在发布模式下,当然在调试器之外。您是如何测量的?在发布模式下编译并在调试器外部运行时,您是否对其进行了基准测试?是的,我使用秒表测量解析并将运行时间写入日志所需的时间。在发布模式下,当然在调试器之外。您是如何测量的?在发布模式下编译并在调试器外部运行时,您是否对其进行了基准测试?是的,我使用秒表测量解析并将运行时间写入日志所需的时间。在发布模式下,当然在调试器之外。您是如何测量的?在发布模式下编译并在调试器外部运行时,您是否对其进行了基准测试?是的,我使用秒表测量解析并将运行时间写入日志所需的时间。在发布模式下,在调试之外