javascript - Injectable 如何影响 Angular 2 的性能

标签 javascript angular dependency-injection

我经常在 Angular 2 中使用依赖注入(inject)来提供数据服务和数据对象的内存缓存。我很自然地为每种目的准备了一种注入(inject)剂。随着项目的发展,我想到了这个问题:

如果我将所有可注入(inject)函数和参数放在一个大类中,并将其注入(inject)到我的所有组件中,性能会受到怎样的影响?

这可以说明我的意思:

假设我有可注入(inject)的 ABC 以及组件 abc (可能更多,但你明白了)。现在A被注入(inject)到aB被注入(inject)到bC被注入(inject)到c。如果我将所有可注入(inject)物组合到 ABC 并将其注入(inject)到组件 abc,这将如何影响我的表现?

最佳答案

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/

相关文章:

javascript - 专注于表格单元格/列

javascript - 如何从事件中推断出表中一行的索引?

javascript - 日期组件 Angular 2

Angular 6 proxy.conf.json 在 apache 上不起作用

angular - typescript 如何在没有引用的情况下复制对象

ios - Swinject 的循环依赖问题

java - "NoClassDefFoundError: javax/inject/Provider"即使包含 javax.inject 依赖项

javascript - 在 Javascript 行和列中查找二维数组的总和

android - 仅用于基本 Activity 的依赖注入(inject)会使子 Activity 崩溃

javascript - 如何在我创建的原始框旁边创建一个新框?