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...