Script Preparation code:
x
 
var arr = [];
var classInstances = [];
var functionInstances = [];
var numInstances = 100000;
function addItem(item) {
  arr.push(item);
};
class TestClass {
  constructor() {
  }
  addItem(item){
    this.item = item;
    arr.push(this.item)
  }
}
function TestFunction() {
}
TestFunction.prototype.addItem = function(item) {
      this.item = item;
      arr.push(item)
}
for( var i = 0; i < numInstances; i++ ) {
  classInstances[i] = new TestClass();
  functionInstances[i] = new TestFunction();
}
Tests:
  • pure function

     
    arr.length = 0;
    for (var i = 0; i < numInstances; i++) {
        addItem(i);
    }
  • class method

     
    arr.length = 0;
    for (var i = 0; i < numInstances; i++) {
      classInstances[i].addItem(i);
    }
  • function method

     
    arr.length = 0;
    for (var i = 0; i < numInstances; i++) {
      functionInstances[i].addItem(i);
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    pure function
    class method
    function method

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 3 years ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36
Chrome 94 on Mac OS X 10.15.7
View result in a separate tab
Test name Executions per second
pure function 83.5 Ops/sec
class method 78.3 Ops/sec
function method 81.1 Ops/sec