Javascript 对象性能,长项目或多项目哪个更好?
我必须将一些事件记录到一个json对象中,那么从性能的角度来看,long或many子对象更好吗 为了更好地解释,请查看以下两个对象: 1st(长对象) 2nd(许多对象) 更新Javascript 对象性能,长项目或多项目哪个更好?,javascript,performance,events,long-integer,Javascript,Performance,Events,Long Integer,我必须将一些事件记录到一个json对象中,那么从性能的角度来看,long或many子对象更好吗 为了更好地解释,请查看以下两个对象: 1st(长对象) 2nd(许多对象) 更新 就内存消耗而言,两者(几乎)相同。性能取决于您打算如何迭代和使用对象 然而,第二种表示法更具可读性和语义正确性。我会说第二种,因为在第一种情况下,您可能会得到多个语句,包括一个或多个循环,用于获取一个事件的数据;而在第二种情况下,只有一个“for…in”循环足以检索单个事件的数据以获得性能,这将取决于您对数据所做的操作。
就内存消耗而言,两者(几乎)相同。性能取决于您打算如何迭代和使用对象
然而,第二种表示法更具可读性和语义正确性。我会说第二种,因为在第一种情况下,您可能会得到多个语句,包括一个或多个循环,用于获取一个事件的数据;而在第二种情况下,只有一个“for…in”循环足以检索单个事件的数据以获得性能,这将取决于您对数据所做的操作。对我来说(尤其是作为一个数据库人员),第二种形式更好,因为如果您只关心性能,而不关心设计,那么关于对象的所有数据都包含在itTry中。“更好”是主观的,更好的表现并不总是“更好”。@timc我将迭代它们来重现一些事件…@WesleyMurch好主意,我现在就做……我将迭代它们来重现一些事件。。。您能解释一下您的想法吗?如果您使用
(字符数)*(字符大小)
计算内存占用,那么内存占用将是相同的。编码的差异可能会导致细微的差异(因此几乎是),但我们所说的是<0.1%(大概数字)。
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...
};