3

我有一个最初使用 Prism 和 Unity 开发的 Xamarin Forms 应用程序。我发现 Unity 在第一次解析对象时相当慢,尽管一旦第一次通过了相同对象类型的所有后续解析,速度就会明显更快。

基于我在另一个线程上收到的一些不相关的建议,我决定尝试从 Unity 切换到 DryIoc。不幸的是,我发现在解析对象时这会更慢,但在随后解析那些相同对象类型的新实例时速度没有提高。

所以,我的问题是,我可以用这两个容器做些什么来提高性能?例如...

  • Unity 中是否有任何东西可以让我预先配置可能创建的对象,以便第一个分辨率与后续分辨率一样快?
  • 我可以用 DryIoc 做些什么来加快所有对象的分辨率?

作为参考,我自己对每个的用法都很简单;我正在使用我RegisterInstance的大部分对象(设置、数据库等)并通过构造函数将它们注入到我的 ViewModel 对象中。Forms 和 ViewModel 对象本身都是使用 PrismRegisterTypeForNavigation扩展方法注册的

4

2 回答 2

2

首先,您需要切换到 UseInstance 并检查结果。

理想情况下,最好针对特定用例对 DryIoc 与 Unity 进行测试。

最后,可能与这个问题有关https://bitbucket.org/dadhi/dryioc/issues/453/migration-from-unity

于 2017-05-30T17:07:21.470 回答
1

我看到的问题与 IoC 容器无关,而是与 Xamarin 相关的问题,该问题是在 5 月初随着 Visual Studio 的 15.2 更新引入的。安装最新更新 (15.2.26430.12) 并重建解决方案恢复了我所期望的性能。

于 2017-05-31T15:23:57.867 回答