Benchmark - Math.sqrt distance calculation VS Tile method

by Michael Prosser

HTML

<h1>toFixed(2) calculation VS Custom method</h1>
<h3 id="xfaster">Roughly 28.1x faster</h3>
<p id="output"></p>
<p id="averages"></p>

CSS

body{
  font-family: helvetica, serif;
}
#output{
  max-height: 100px;
  overflow: auto;
  font-size: 10px;
  border: solid 1px #ccc;
  padding: 10px;
}

JavaScript

var scene = {
	name: "MY SCENE"
};

var running1 = 0;
var running2 = 0;


var pow2 = function(n){
	
	return n*n;
	
}

function method1(p1,p2){
	
  	var obj = {
    	asdsadsadsadsadsadsadsadsadsadsadsadsadsadsadas: 12
    }
  	return obj.asdsadsadsadsadsadsadsadsadsadsadsadsadsadsadas;
    
}

function method2(p1,p2){
	
  	var obj = {
    	a: 12
    }
  	return obj.a;
    
}

var output = document.getElementById('output');
var averages = document.getElementById('averages');

var timer = function(name) {
    var start = new Date();
    return {
        stop: function() {
            var end  = new Date();
            var time = end.getTime() - start.getTime();
            //console.log('Timer:', name, 'finished in', time, 'ms');
            output.innerHTML += 'Timer: ' + name + '<br />finished in ' + time + ' ms<br />';
            
        },
        time: function() {
            var end  = new Date();
            return end.getTime() - start.getTime();
            
        }
    }
};

var count = 20;

var samples = 10;

var p1 = { x: 1, y: 2, z: 3 };
var p2 = { x: 4, y: 5, z: 6 };


for(var j=0;j<samples;j++){

  var t = timer('toFixed Method Timer');
  // code to benchmark

  for(var i=0;i<count;i++){

   method1(p1,p2);

  }

  //////////////////////////////////////////////////////
  t.stop(); // prints the time elapsed to the js console
  running1 += t.time();


  var t = timer('Custom Method Timer');
  // code to benchmark

  for(var i=0;i<count;i++){

    method2(p1,p2);

  }

  //////////////////////////////////////////////////////
  t.stop(); // prints the time elapsed to the js console
  running2 += t.time();
  
  output.innerHTML += '<hr />';

}

var xFaster = parseInt(running1/samples)/parseInt((running2)/samples);

document.getElementById('xfaster').innerHTML = 'Roughly ' + xFaster.toFixed(1) + 'x Faster';

averages.innerHTML += 'PERFORMANCE 1 AVG: ' + parseInt(running1/samples) + 'ms<br />PERFORMANCE 2 AVG: ' + parseInt(running2/samples) + 'ms<br...