对象性能,什么是更好的长项目或许多项目?

时间:2013-01-07 23:06:19

标签: javascript performance events long-integer

我要将一些事件记录到json对象中,那么从性能的角度来看,还是很多子对象会有什么效果呢?

为了更好地解释,请看看这两个对象:

第一(长对象)

var eventsObj = {
  target: {
    timestamp1: window,
    timestamp2: document,
    timestamp3: document
  },
  keyCode: {
    timestamp1: 0,
    timestamp2: 66,
    timestamp3: 67
  },
  mouseX: {
    timestamp1: 1,
    timestamp2: 2,
    timestamp3: 3
  },
  mouseY: {
    timestamp1: 0,
    timestamp2: 1,
    timestamp3: 2
  }
  ...etc...
};

第二(多个对象)

var eventsObj = {
  timestamp1: {
    target: window,
    keyCode: 0,
    mouseX: 1,
    mouseY: 0
  },
  timestamp2: {
    target: document,
    keyCode: 66,
    mouseX: 2,
    mouseY: 1
  },
  timestamp3: {
    target: document,
    keyCode: 67,
    mouseX: 3,
    mouseY: 2
  }
  ...etc...
};

更新

http://jsperf.com/object-performance-long-items-or-many-items

2 个答案:

答案 0 :(得分:0)

就内存消耗而言,两者都将(几乎)相同。性能取决于您打算如何迭代和使用对象。

然而,第二种表示更具可读性和语义正确性。

答案 1 :(得分:0)

我说第二个,因为你可能最终会得到几个陈述,包括一个或几个循环,在第一个案例中获得一个事件的数据;而在......中只有一个用于...第二种情况下的循环足以用于检索单个事件的数据