Arrays Performance 1

Benchmark created on


Setup

var partsOneDim = []
  var partsMultiDim = []
  var partsObj = []
  var count = 200e3
  
  function populateOneDim(a, count) {
    for(var i = 0; i < count; i++) {
      a[i*4] = Math.random()*10
      a[i*4 + 1] = Math.random()*10
      a[i*4 + 2] = Math.random()*10
      a[i*4 + 3] = Math.random()*10
    }
  }
  function populateMultiDim(a, count) {
    for(var i = 0; i < count; i++) {
      a[i] = [
        Math.random()*10,
        Math.random()*10,
        Math.random()*10,
        Math.random()*10
      ]
    }
  }
  function populateObj(a, count) {
    for(var i = 0; i < count; i++) {
      a[i] = {
        x: Math.random()*10,
        y: Math.random()*10,
        z: Math.random()*10,
        f: Math.random()*10
      }
    }
  }
  populateOneDim(partsOneDim, count)
  populateMultiDim(partsMultiDim, count)
  populateObj(partsObj, count)

Test runner

Ready to run.

Testing in
TestOps/sec
One dimension
for(var i = 0; i < count; i++) {
    var x = i*4
    partsOneDim[x] = partsOneDim[x] + partsOneDim[x+2]
    partsOneDim[x + 1] = partsOneDim[x + 1] + partsOneDim[x+3]
}
ready
2 dimension
for(var i = 0; i < count; i++) {
    var p = partsMultiDim[i]
    p[0] = p[0] + p[2]
    p[1] = p[1] + p[3]
  }
ready
Objects
for(var i = 0; i < count; i++) {
    var p = partsObj[i]
    p.x = p.x + p.z
    p.y = p.y + p.f
  }
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.