Empty array

JavaScript performance comparison

Revision 105 of this test case created

Info

Need to make sure the tests aren't operating on an empty array...

Preparation code

 
<script>
Benchmark.prototype.setup = function() {
    var arr=[{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"}];
};

Benchmark.prototype.teardown = function() {
    arr=[{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"},{a:1,b:"2"}];
};
</script>

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
length
arr.length = 0;
pending…
splice
arr.splice(0, arr.length);
pending…
new1
arr = [];
pending…
new1
arr = Array();
pending…
for pop
for (var i = 0, len = arr.length; i < len; i++) {
  arr.pop();
}
pending…
reverse for pop
for (var len= arr.length; len > 0; len--) {
  arr.pop();
}
pending…
while pop variable
var len = arr.length;
while (len) {
  arr.pop();
  len -= 1;
}
pending…
pop !== undefined
var i;
while ((i = arr.pop()) !== undefined) {}
pending…
length pop
while (arr.length) {
  arr.pop();
}
pending…
length shift
while (arr.length) {
  arr.shift();
}
pending…
length > 0 pop
while (arr.length > 0) {
  arr.pop();
}
pending…
length > 0 shift
while (arr.length > 0) {
  arr.shift();
}
pending…
blind pop
while (arr.pop());
pending…
blind shift
while (arr.shift());
pending…

Compare results of other browsers

Revisions

You can edit these tests or add even more tests to this page by appending /edit to the URL. Here’s a list of current revisions for this page:

0 comments

Add a comment