Xamarin Forms with Prism 和 DryIoc 有很多注册页面,会降低性能吗?

Xamarin Forms with Prism and DryIoc with a lot of registered page, can reduce performance?

例如,我们有一个大型 Xamarin 表单项目,有 2000 页,以及 Prism MVVM 框架,带有 DryIoc 容器,已经注册了所有 2000 页。

这个页面很多,加了DependencyService比如navigationservice,dialogservice,会不会降低导航的速度and/or性能? 它可以使应用程序 运行 变慢,因为有很多依赖性?

谢谢!!

对此没有简单的答案。一般的是 - 是的。与任何包一样,DryIoc 是您项目的额外开销。 IoC 容器肯定会为整体感觉增加一些时间。请记住,开销是最小的 - 在几毫秒内。就像 GitHub repo 中所说的那样:

Designed for low-ceremony use, performance, and extensibility.

DryIoc被认为是一个比较快的容器。这里是官方IoC Container Benchmark - Performance comparison.

但同样,这完全取决于您需要实例化多少服务。如果你有 2000 页也没关系。这些页面有多少依赖项以及有多少 circular dependencies 也很重要。

另外,一些 IoC 逻辑是在应用程序启动时完成的,您也可以在那里匹配一些解析。

总而言之 - 拥有 IoC 容器比没有它要好,因为从中获得的灵活性胜过最终的小性能开销。