Speed Performance

by David Hughes

JavaScript

//This is the constructor.
function SpeedTest(testImplement, testParams, repetitions) {
  this.testImplement = testImplement;
  this.testParams = testParams;
  this.repetitions = repetitions || 10000;
  this.average = 0;
}

//Add the commonly used methods to prototype
SpeedTest.prototype = {
  startTest: function(){
    var beginTime, endTime, sumTimes = 0;
    
    for (var i = 0, x = this.repetitions.length; x < i; i++) {
      beginTime = +newDate();
      this.testImplement( this.testParams );
      endTime = +newDate();
      sumTimes += endTime - beginTime;
    }
    
    this.average = sumTimes / this.repetitions;
    return console.log("Average execution across " +
                        this.repetitions + ": " +
                        this.average);
  }
};

//We wrap our code to test in its own function that can be passed
//around as a set of code to test.
var myNum = 0;
var testHolder = function () {
  for (var i = 0; i <= 15; i++) {
  	myNum = i;
  }
};//End of testHolder

//The test CALL
var firstTest = new SpeedTest (testHolder, null, 230000);
firstTest.startTest();