【问题标题】:Is it a good idea to not use ember-data for performance reasons出于性能原因不使用 ember-data 是个好主意吗
【发布时间】:2018-04-02 13:42:15
【问题描述】:

以下是 Ember 对象创建的几个性能测试。

Ember v2.3.1 with jQuery

Ember v2.16.0(截至撰写本文时最新)

几个要点:

  1. 创建 Ember 对象比创建普通 JS 对象慢得多(Ember v2.3.1 慢约 100 倍,Ember v2.16.0 慢约 300 倍)
  2. Ember v2.16.0 在 Ember 对象创建方面比 Ember v2.3.1 慢

我反复运行性能测试。以上两点在我的所有运行中都是一致的。

现在,假设我想使用 Ember 创建一个新的复杂 Web UI。 UI 需要经常与后端交换相当数量的数据(例如,每个 http 调用 100KB)。基于上述性能结果,以及我假设 ember-data 需要为每个模型调用多个 Ember.Object.create(),在应用程序中不使用 ember-data 是个好主意吗?一种替代方法是手动在模型挂钩中进行 ajax 调用,并且仅在必要时创建 Ember 对象?

顺便说一句,假设我们必须在这种情况下使用 Ember。这里有趣的问题是我们是否可以通过不使用 ember-data 来获得性能提升?或者,如果我们需要使用 ember-data 来发挥它的优势,我们通常可以做哪些优化?

【问题讨论】:

    标签: javascript performance ember.js ember-data


    【解决方案1】:

    基于上述性能结果,以及我假设 ember-data 需要为每个模型调用多个 Ember.Object.create() ,在应用程序中不使用 ember-data 是个好主意吗?一种替代方法是手动在模型挂钩中进行 ajax 调用,并且仅在必要时创建 Ember 对象?

    这个问题绝对值得问。 Ember Data 是否为您提供使用所需的项目?

    顺便说一句,假设我们必须在这种情况下使用 Ember。这里有趣的问题是我们是否可以通过不使用 ember-data 来获得性能提升?或者,如果我们需要使用 ember-data 来发挥它的优势,我们通常可以做哪些优化?

    我希望您能够在没有 ember-data 的情况下获得更好的性能,因为它有许多移动部件。一些核心团队(以及 LinkedIn 的人员)对减少 Ember Data 的规模和复杂性的方法有想法和梦想,但这并不是他们目前的主要关注点。作为降低复杂性工作的一部分,Ember Data 2.13 中进行了一些更改,这些更改导致了一些错误。您是否在 ED 2.12 上看到了相同的性能特征差异?

    Re:通常的优化,我不知道,可能值得在#-dev-ember-data Slack 频道上询问。如果您有时间/有兴趣,目前缺少专门的 Ember Data 人员,如果有人在附近并有兴趣帮助提高性能,这对整个社区来说都很棒

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-16
      • 2013-03-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多