2017-10-21 96 views
0

下面是几个Ember对象创建的性能测试。因性能原因不使用余烬数据是一个好主意

Ember v2.3.1 with jQuery Snapshot of Ember v2.3.1 jsperf results

Ember v2.16.0(最新为这篇文章的写作) enter image description here

几个外卖的:

  1. 创建灰烬对象比创建简单的慢得多JS对象(Ember v2.3.1约慢100倍,Ember v2.16.0约慢300倍)
  2. Ember v2.16.0在Ember对象创建方面比Ember v2.3.1慢

我反复运行了perf测试。以上两点在我所有的跑步中都是一致的。

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

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

回答

1

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

这绝对值得提问。 Ember Data会为您提供您需要的用品吗?

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

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

回复:通常的优化,我所知道的都不值得问#-dev-ember-data Slack通道。如果你有时间/兴趣,目前缺乏专门的Ember数据人员,并且有人和有兴趣帮助表演的人会对整个社区很好

相关问题