Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对象性能,长项目或多项目哪个更好?_Javascript_Performance_Events_Long Integer - Fatal编程技术网

Javascript 对象性能,长项目或多项目哪个更好?

Javascript 对象性能,长项目或多项目哪个更好?,javascript,performance,events,long-integer,Javascript,Performance,Events,Long Integer,我必须将一些事件记录到一个json对象中,那么从性能的角度来看,long或many子对象更好吗 为了更好地解释,请查看以下两个对象: 1st(长对象) 2nd(许多对象) 更新 就内存消耗而言,两者(几乎)相同。性能取决于您打算如何迭代和使用对象 然而,第二种表示法更具可读性和语义正确性。我会说第二种,因为在第一种情况下,您可能会得到多个语句,包括一个或多个循环,用于获取一个事件的数据;而在第二种情况下,只有一个“for…in”循环足以检索单个事件的数据以获得性能,这将取决于您对数据所做的操作。

我必须将一些事件记录到一个json对象中,那么从性能的角度来看,longmany子对象更好吗

为了更好地解释,请查看以下两个对象:

1st(长对象)

2nd(许多对象)

更新


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


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

我会说第二种,因为在第一种情况下,您可能会得到多个语句,包括一个或多个循环,用于获取一个事件的数据;而在第二种情况下,只有一个“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...
};