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

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

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

     
    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: 5 months ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0
Firefox 133 on Windows
View result in a separate tab
Test name Executions per second
pure function 382.6 Ops/sec
class method 168.2 Ops/sec
function method 11.4 Ops/sec