我经常在 Angular 2 中使用依赖注入(inject)来提供数据服务和数据对象的内存缓存。我很自然地为每种目的准备了一种注入(inject)剂。随着项目的发展,我想到了这个问题:
如果我将所有可注入(inject)函数和参数放在一个大类中,并将其注入(inject)到我的所有组件中,性能会受到怎样的影响?
这可以说明我的意思:
假设我有可注入(inject)的 A
、B
和 C
以及组件 a
、b
和 c
(可能更多,但你明白了)。现在A
被注入(inject)到a
; B
被注入(inject)到b
,C
被注入(inject)到c
。如果我将所有可注入(inject)物组合到 ABC
并将其注入(inject)到组件 a
、b
、c
,这将如何影响我的表现?
最佳答案
If I put all injectable functions and parameters in one big class, and inject it to all my components, how will the performance be affected?
如果您使用 AoT,那么这将没有可衡量的效果,因为 AoT 会为 DI 生成静态代码。
如果您使用 platform_dynamic(没有 AoT),那么可能会有细微差别。
要使您的方法有意义,您需要在更改和不更改的情况下进行基准测试,以获得关于这是否对性能有任何影响的认真反馈。
一般而言,代码质量优先于性能,除非您可以证明特定代码会损害性能(不要过早优化)。
如果您可以更改您的代码,使您需要的单个服务器请求比以前少,那么您节省的时间可能比所有 DI 所需的总和还要多。
关于javascript - Injectable 如何影响 Angular 2 的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41585558/