2017-10-21 140 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數據人員,並且有人和有興趣幫助表演的人會對整個社區很好