2013-01-12 22 views
0

從對象或簡單計算中檢索信息的速度更快? 他們之間有明顯的區別嗎?js中的信息檢索更快嗎?對象與計算

語境:

  • Web開發
  • 使用js和/或jQuery的
  • 多達幾百個項目,影響了網頁

下面就爲對象的示例中,我會檢索信息:

var pModel = { 
    1 : {sire: 3, dam: 4, herdList: settings.sireList}, 
    2 : {sire: 5, dam: 6, herdList: settings.damList}, 
    3 : {sire: 7, dam: 8, herdList: settings.sireList}, 
    4 : {sire: 9, dam: 10, herdList: settings.damList}, 
    5 : {sire: 11, dam: 12, herdList: settings.sireList}, 
    6 : {sire: 13, dam: 14, herdList: settings.damList} 
}; 

後,我寫的代碼,我注意到在數據中所固有的數學模式:

// Where x is a number 
pModel[x].sire == 2x+1; 
pModel[x].dam == 2x+2; 
(x%2=0) ? settings.damList : settings.sireList; 

有明顯的未來打樣的優勢,利用數學,但速度是一個重要的考慮因素在這裏。

+2

然後,該模式已經一去不復返了...... – Alexander

+0

怎樣的格局消失了? –

+0

除非你指的是具有固有開始和結束的對象。這就是數學更適合未來打樣的地方。 –

回答

1

數學應該更快,如果你知道算法,你甚至不需要對象文字。在你需要它之​​前立即解釋對象字面值,而數學只佔用你需要的處理器/時間。

對於對象文字,執行查找所花的時間可能超過數學計算,因爲它依賴於數學計算+與遍歷對象相關的額外開銷。

跟數學一起去吧。

+1

只要你的數學和上面一樣簡單,是的 - 去數學。如果你開始尋找循環和條件,那麼預先計算可以幫助你。如果有疑問,請以此爲基準。 – tucuxi

+0

+1有用的解釋。 –