Javascript 出于性能原因不使用余烬数据是一个好主意吗

Javascript 出于性能原因不使用余烬数据是一个好主意吗,javascript,performance,ember.js,ember-data,Javascript,Performance,Ember.js,Ember Data,下面是余烬对象创建的两个性能测试 (截至本文撰写之日) 一些外卖: 创建Ember对象比创建普通JS对象慢得多(对于Ember v2.3.1,大约慢100倍,对于Ember v2.16.0,大约慢300倍) 就余烬对象创建而言,余烬v2.16.0比余烬v2.3.1慢 我反复运行性能测试。以上两点在我所有的跑步中都是一致的 现在,假设我想使用Ember创建一个新的复杂web UI。UI需要经常与后端交换相当数量的数据(例如,每次http调用100KB)。基于以上性能结果,以及我的假设,即em

下面是余烬对象创建的两个性能测试

(截至本文撰写之日)

一些外卖:

  • 创建Ember对象比创建普通JS对象慢得多(对于Ember v2.3.1,大约慢100倍,对于Ember v2.16.0,大约慢300倍)
  • 就余烬对象创建而言,余烬v2.16.0比余烬v2.3.1慢
  • 我反复运行性能测试。以上两点在我所有的跑步中都是一致的

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

    顺便说一句,假设我们在这个场景中必须使用余烬。这里有趣的问题是,我们是否可以通过不使用余烬数据来获得性能增益?或者,如果我们需要使用余烬数据来实现它的优势,那么我们可以做哪些常规优化

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

    这个问题绝对值得问。余烬数据是否为您提供了使用所需的物品

    顺便说一句,假设我们在这个场景中必须使用余烬。这里有趣的问题是,我们是否可以通过不使用余烬数据来获得性能增益?或者,如果我们需要使用余烬数据来实现它的优势,那么我们可以做哪些常规优化

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

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