2012-03-14 56 views
0

我經常創建新的對象,拋棄舊的,像這裏(這是從https://github.com/nefD/impact-tween)一些流行的JavaScript庫看到很多代碼: 優化對象創建的JavaScript中移動

 
if (this.tweens.length > 0) { 
    var currentTweens = []; 
    for (var i = 0; i < this.tweens.length; i++) { 
     this.tweens[i].update(); 
     if (!this.tweens[i].complete) currentTweens.push(this.tweens[i]); 
    } 
this.tweens = currentTweens; 
我的問題向專家是否會阻礙使用JavaScript構建的相對較慢的移動應用程序的性能。我的意思是,儘可能重用現有對象對性能有顯着影響?

這是一個理論問題,我知道如果我想加快我的程序,我需要找到我的代碼中的一個瓶頸,並優化它,而不是通常對性能進行理論化。

回答

1

如果你可以重複使用DOM元素和JS對象。

創建和放棄是不是一個低成本的操作和移動,其中處理器的速度慢,還有你想避免垃圾收集儘可能長的時間內存更少。

Estelle Weyl在Velocity EU的演示文稿上有一些幻燈片 - http://standardista.com/velocity/#slide1

0

一般來說,瓶頸在於DOM。它比在桌面瀏覽器上慢10-100倍。

我經常看到沒有移動版本的網站,這些網站在我的iPhone 3G上渲染了大約一秒。最後一個有400MHz的CPU,甚至有一些GPU加速AFAIK。這不是網絡滯後,我只是說我自己的WiFi。

重用DOM元素仍然可以提高性能。