Unity和DryIoc之间性能比较

使用Prism的DI容器时,Unity和DryIoc之间没有功能上的区别,因此请比较性能。仅在DryIoc博客上比较DI容器的基准 出版了,所以我从中提取了DryIoc和Unity。

该基准是测量从每个DI容器中获取以下类型的类500,000次(解析)的时间(以毫秒为单位)的结果,较高的数字是单线程,较低的数字是多线程处理,这似乎是结果。
*以下类型的说明是从网络翻译中推断出的句子,因此可能与实际的句子有所不同。

  • 单例:单例对象
  • 瞬态:具有临时寿命的对象
  • 合并的:具有两个依赖项(Singleton和Transient)的对象。
  • 复杂:具有嵌套依赖关系的对象
  • 泛型:具有泛型依赖性的对象
  • IEnumerable:实现IEnumerable的对象
  • 条件的:具有条件依赖性的对象
Container Singleton Transient Combined Complex Generics IEnumerable Conditional
No 41
49
49
59
69
76
99
103
70
75
193
176
53
63
DryIoc 4.0.7 36
49
56
79
57
102
76
89
58
83
326
232
58
78
Unity 5.11.1 231
160
1598
926
3599
1995
8365
4647
9191
5255
15421
8702
3319
1861

 

并且以上基准是2020/2/2更新的测量结果。它是与Prism 7.2版SR1中包含的Unity和DryIoc相同版本的基准,因此非常适合进行比较。

如果只看基准测试结果,DryIoc的速度快得多,所以如果您要关注性能,可以选择DryIoc,但以上测量结果仅是DI容器的基准。并非总是能获得结果。

如您所见,Prism内置的DI容器仅在性能上有所不同,因此您可以选择它们只是因为它们具有良好的性能。最近的大多数管理员样本都选择了DryIoc。(DryIoc用于样本,例如该系列中的MVVM L @ bo和WPF UI Gallery)

但是,似乎有很多人使用诸如DI和Unity之类的搜索词来到此站点,因此在本系列中,我们将选择Unity作为DI容器,但是除非另有说明,否则我们将使用Unity或DryIoc。 ,说明不变。

 

上一篇:将pebuilder变成dibuilder.sh,将di tools集入boot层(7):将linuxlivekit整合到dibuilder,打造final minstack liveos


下一篇:理解Spring的依赖注入(DI)和切面编程(AOP)