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。 ,说明不变。
标签:容器,DI,DryIoc,基准,对象,Unity,性能 来源: https://blog.csdn.net/qq_28368039/article/details/113874021