Script Preparation code:
x
 
var data = { a: 1, b: 2, c: 3, d: 4, e: 5, f: 6, g: 7 }
function individualParams(a, b, c, d, e, f, g) {
  return a + b + c + d + e + f + g;
}
function objectInAndUsed(p) {
  return p.a + p.b + p.c + p.d + p.e + p.f + p.g;
}
function objectInAndDestructured(p) {
  const {a, b, c, d, e, f, g} = p;
  return a + b + c + d + e + f + g;
}
Tests:
  • individualParams: Multiple parameters

     
    individualParams(data.a, data.b, data.c, data.d, data.e, data.f, Math.random())
  • individualParams: Existing parameter object

     
    data.g = Math.random();
    individualParams(data)
  • individualParams: Parameter object with spreading

     
    individualParams({ ...data, g: Math.random() })
  • individualParams: New parameter object from values

     
    individualParams({ a: 1, b: 2, c: 3, d: 4, e: 5, f: 6, g: Math.random() })
  • individualParams: New parameter object from object

     
    individualParams({a: data.a, b: data.b, c: data.c, d: data.d, e: data.e, f: data.f, g: Math.random()})
  • objectInAndUsed: Multiple parameters

     
    objectInAndUsed(data.a, data.b, data.c, data.d, data.e, data.f, Math.random())
  • objectInAndUsed: Existing parameter object

     
    data.g = Math.random();
    objectInAndUsed(data)
  • objectInAndUsed: Parameter object with spreading

     
    objectInAndUsed({ ...data, g: Math.random() })
  • objectInAndUsed: New parameter object from values

     
    objectInAndUsed({ a: 1, b: 2, c: 3, d: 4, e: 5, f: 6, g: Math.random() })
  • objectInAndUsed: New parameter object from object

     
    objectInAndUsed({a: data.a, b: data.b, c: data.c, d: data.d, e: data.e, f: data.f, g: Math.random()})
  • objectInAndDestructured: Multiple parameters

     
    objectInAndDestructured(data.a, data.b, data.c, data.d, data.e, data.f, Math.random())
  • objectInAndDestructured: Existing parameter object

     
    data.g = Math.random();
    objectInAndDestructured(data)
  • objectInAndDestructured: Parameter object with spreading

     
    objectInAndDestructured({ ...data, g: Math.random() })
  • objectInAndDestructured: New parameter object from values

     
    objectInAndDestructured({ a: 1, b: 2, c: 3, d: 4, e: 5, f: 6, g: Math.random() })
  • objectInAndDestructured: New parameter object from object

     
    objectInAndDestructured({a: data.a, b: data.b, c: data.c, d: data.d, e: data.e, f: data.f, g: Math.random()})
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    individualParams: Multiple parameters
    individualParams: Existing parameter object
    individualParams: Parameter object with spreading
    individualParams: New parameter object from values
    individualParams: New parameter object from object
    objectInAndUsed: Multiple parameters
    objectInAndUsed: Existing parameter object
    objectInAndUsed: Parameter object with spreading
    objectInAndUsed: New parameter object from values
    objectInAndUsed: New parameter object from object
    objectInAndDestructured: Multiple parameters
    objectInAndDestructured: Existing parameter object
    objectInAndDestructured: Parameter object with spreading
    objectInAndDestructured: New parameter object from values
    objectInAndDestructured: New parameter object from object

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 6 months ago)
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:132.0) Gecko/20100101 Firefox/132.0
Firefox 132 on Ubuntu
View result in a separate tab
Test name Executions per second
individualParams: Multiple parameters 1156689792.0 Ops/sec
individualParams: Existing parameter object 6078949.0 Ops/sec
individualParams: Parameter object with spreading 3362427.2 Ops/sec
individualParams: New parameter object from values 6100264.5 Ops/sec
individualParams: New parameter object from object 5747873.5 Ops/sec
objectInAndUsed: Multiple parameters 1138446336.0 Ops/sec
objectInAndUsed: Existing parameter object 379902656.0 Ops/sec
objectInAndUsed: Parameter object with spreading 7446000.5 Ops/sec
objectInAndUsed: New parameter object from values 1173662592.0 Ops/sec
objectInAndUsed: New parameter object from object 1072120960.0 Ops/sec
objectInAndDestructured: Multiple parameters 40212560.0 Ops/sec
objectInAndDestructured: Existing parameter object 59339312.0 Ops/sec
objectInAndDestructured: Parameter object with spreading 7215412.0 Ops/sec
objectInAndDestructured: New parameter object from values 38754312.0 Ops/sec
objectInAndDestructured: New parameter object from object 28222326.0 Ops/sec