Math And JS Fun
JavaScript performance comparison
Preparation code
<script>
Benchmark.prototype.setup = function() {
function equalsTen () {
var data = [0,1,2,3,4,5,6,7,8,9];
var dataLen = data.length;
for (var i=0; i<dataLen; i++) {
var diff = 10-data[i];
for (var j=0; j<dataLen; j++) {
if (j != i && data[j] == diff) {
//document.write(data[i]+" and "+data[j]+" are a match <br>");
return true;
}
}
}
//document.write("no matches<br>");
return false;
}
function equalsTen2 () {
var data = [0,1,2,3,4,5,6,7,8,9];
var dataLen = data.length;
for (var i=0; i<dataLen; i++) {
var diff = 10-data[i];
var result = data.indexOf(diff);
if (result > -1 && result != i) {
//document.write(data[i]+" and "+data[result]+" are a match <br>");
return true;
}
}
//document.write("no matches<br>");
return false;
}
function equalsTen3 () {
var data = [0,1,2,3,4,5,6,7,8,9];
while (data.length > 0) {
var val = data.shift();
var diff = 10-val;
for (var i=0, j=data.length; i<j; i++) {
if (data[i] == diff) {
//document.write(val+" and "+data[i]+" are a match <br>");
return true;
}
}
}
//document.write("no matches<br>");
return false;
}
function equalsTen4 () {
var data = [0,1,2,3,4,5,6,7,8,9];
while (data.length > 0) {
var val = data.shift();
var diff = 10-val;
var result = data.indexOf(diff);
if (result > -1) {
//document.write(val +" and "+data[result]+" are a match <br>");
return true;
}
}
//document.write("no matches<br>");
return false;
}
};
</script>
Test runner
Warning! For accurate results, please disable Firebug before running the tests. (Why?)
Java applet disabled.
| Test | Ops/sec | |
|---|---|---|
2 Loops |
|
pending… |
Loop & Index-Of |
|
pending… |
While & loop |
|
pending… |
While & index-Of |
|
pending… |
You can edit these tests or add even more tests to this page by appending /edit to the URL.
0 comments