Empty JavaScript array redux

Benchmark created by diadistis on


Description

Original discussion at http://stackoverflow.com/questions/1232040/how-to-empty-an-array-in-javascript.

This version of the test is much slower because it needs to copy the pre-populated array in each iteration. I have included a control snippet to calculate the time needed for the copy.

Setup

var small = [],
        medium = [],
        big = [],
        smallSize = 100,
        mediumSize = 10000,
        bigSize = 100000;
    
    while (smallSize--) {
        small.push(Math.random());
    }
    
    while (mediumSize--) {
        medium.push(Math.random());
    }
    
    while (bigSize--) {
        big.push(Math.random());
    }

Test runner

Ready to run.

Testing in
TestOps/sec
control (small)
small.slice();
ready
control (medium)
medium.slice();
ready
control (big)
big.slice();
ready
new array (small)
var arr = small.slice();
arr = [];
ready
new array (medium)
var arr = medium.slice();
arr = [];
ready
new array (big)
var arr = big.slice();
arr = [];
ready
length = 0 (small)
var arr = small.slice();
arr.length = 0;
ready
length = 0 (medium)
var arr = medium.slice();
arr.length = 0;
ready
length = 0 (big)
var arr = big.slice();
arr.length = 0;
ready
splice (small)
var arr = small.slice();
arr.splice(0, arr.length);
ready
splice (medium)
var arr = medium.slice();
arr.splice(0, arr.length);
ready
splice (big)
var arr = big.slice();
arr.splice(0, arr.length);
ready
while;pop (small)
var arr = small.slice();
while(arr.length > 0) {
    arr.pop();
}
ready
while;pop (medium)
var arr = medium.slice();
while(arr.length > 0) {
    arr.pop();
}
ready
while;pop (big)
var arr = big.slice();
while(arr.length > 0) {
    arr.pop();
}
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.

  • Revision 1: published by diadistis on