proto-vs-class

Benchmark created on


Setup

const MyProto = Object.create({}, {
  a0: { enumerable: true, writable: true, value: 1 },
  b0: { enumerable: true, writable: true, value: '' },
  a1: { enumerable: true, writable: true, value: 0 },
  b1: { enumerable: true, writable: true, value: '' },
  a2: { enumerable: true, writable: true, value: 0 },
  b2: { enumerable: true, writable: true, value: '' },
  a3: { enumerable: true, writable: true, value: 0 },
  b3: { enumerable: true, writable: true, value: '' },
  a4: { enumerable: true, writable: true, value: 0 },
  b4: { enumerable: true, writable: true, value: '' },
  a5: { enumerable: true, writable: true, value: 0 },
  b5: { enumerable: true, writable: true, value: '' },
  a6: { enumerable: true, writable: true, value: 0 },
  b6: { enumerable: true, writable: true, value: '' },
  a7: { enumerable: true, writable: true, value: 0 },
  b7: { enumerable: true, writable: true, value: '' },
  a8: { enumerable: true, writable: true, value: 0 },
  b8: { enumerable: true, writable: true, value: '' },
})

class MyClass {
  a0= 1;
  b0= '';
  a1= 0;
  b1= '';
  a2= 0;
  b2= '';
  a3= 0;
  b3= '';
  a4= 0;
  b4= '';
  a5= 0;
  b5= '';
  a6= 0;
  b6= '';
  a7= 0;
  b7= '';
  a8= 0;
  b8= '';
}
let acc1 = 0
let acc2 = 0

Test runner

Ready to run.

Testing in
TestOps/sec
proto
const a = Object.create(MyProto)
acc1 += a.a0
ready
class
const b = new MyClass
acc2 += b.a0
ready

Revisions

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