Microsoft Unity容器的性能

Shi*_*iji 4 c# performance web-services unity-container

我正在审查一个使用Microsoft Patterns and Practices Unity Container的项目.

有一个容器有40个注册类型,为每个Web服务调用创建一个容器实例.

我想知道:

  • 由于注册了这么多类型,是否存在性能问题?
  • 可以在Web服务调用之间共享统一容器吗?

Web服务托管在IIS中.

Chr*_*res 12

Unity在第一次完成解决时会缓存各种各样的东西.这显着提高了以后解析调用的性能.如果您在每个请求上创建一个新容器,那么您将丢弃这些缓存.

在请求之间保持容器.

  • 子容器也做这个缓存,有一些皱纹.如果您正在使用子容器进行生命周期管理(使用HierarchicalLifetimeManager)但不在子进程中配置注册,则缓存信息实际上存储在父容器中,因此可以丢弃子进程而不会丢弃缓存.如果您正在配置子项中的注册,则缓存将存储在子项中,并在子项被处理/垃圾收集时消失. (2认同)

Sha*_*bie 8

请在Application_Start期间创建容器并注册所有类型.我们已经在大型项目(wcf和asp.net mvc)中为大约200种类型做了这个,并且没有任何问题.

谢谢