0

从对象或简单计算中检索信息哪个更快?它们之间有显着区别吗?

语境:

  • 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;

使用数学有明显的未来证明优势,但速度是这里的主要考虑因素。

4

2 回答 2

3

至少对于这么简单的数学,事实证明数学更快:

http://jsperf.com/object-vs-calc

在此处输入图像描述

于 2013-01-12T19:26:30.837 回答
1

数学应该更快,如果你知道算法,你甚至不需要对象文字。对象文字在您甚至需要它之前就立即被解释,而数学只占用您需要的处理器/时间。

对于对象文字,查找所需的时间可能比数学计算更多,因为它依赖于数学计算+与遍历对象相关的额外开销。

跟着数学走。

于 2013-01-12T19:19:48.133 回答