array cloning (v48)

Revision 48 of this benchmark created by Jörg Schaper on


Description

speed comparissons between slice, splice, for, $.merge, Array

Preparation HTML

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">
</script>

Setup

var a = [{
      test: 'bye'
    }, 'z', 'a', 'q', 'w', 's', 'x', 'c', 'd', 'v', 'e', 'f', 't', 'r', 'g', 't', 'm', 'y', 'h', 't', 'y', 'j', 'i', 'o', 'l', 'f', 's', 'd', 'j', 'n', 'm', 'c', 'u', 'i', 'e', 'w', 'h', 'r', ',', 'w', 'e', 'n', 'r', 'w', 'n', 'e', 'b', 'f', '2', '3', '4', '2', '3', '4', 'n', 'j', 'm', 'f', 'd', 's', 'j', 'd', 'y', 'f', 'g', '2', '3', 'h', 'f', 's', 'j', 'd', 'b', 'm', 'f', 'h', 's', 'd', 'h', 'f', 'o', '2', '3', 'i', 'z', 'a', 'q', 'w', 's', 'x', 'c', 'd', 'v', 'e', 'f', 't', 'r', 'g', 't', 'm', 'y', 'h', 't', 'y', 'j', 'i', 'o', 'l', 'f', 's', 'd', 'j', 'n', 'm', 'c', 'u', 'i', 'e', 'w', 'h', 'r', ',', 'w', 'e', 'n', 'r', 'w', 'n', 'e', 'b', 'f', '2', '3', '4', '2', '3', '4', 'n', 'j', 'm', 'f', 'd', 's', 'j', 'd', 'y', 'f', 'g', '2', '3', 'h', 'f', 's', 'j', 'd', 'b', 'm', 'f', 'h', 's', 'd', 'h', 'f', 'o', '2', '3', 'i', 'z', 'a', 'q', 'w', 's', 'x', 'c', 'd', 'v', 'e', 'f', 't', 'r', 'g', 't', 'm', 'y', 'h', 't', 'y', 'j', 'i', 'o', 'l', 'f', 's', 'd', 'j', 'n', 'm', 'c', 'u', 'i', 'e', 'w', 'h', 'r', ',', 'w', 'e', 'n', 'r', 'w', 'n', 'e', 'b', 'f', '2', '3', '4', '2', '3', '4', 'n', 'j', 'm', 'f', 'd', 's', 'j', 'd', 'y', 'f', 'g', '2', '3', 'h', 'f', 's', 'j', 'd', 'b', 'm', 'f', 'h', 's', 'd', 'h', 'f', 'o', '2', '3', 'i'];
    var b = [];
    //Jörg Schaper
    var c = new Array(a.length);
    var d = new Array(a.length);

Test runner

Ready to run.

Testing in
TestOps/sec
slice
b = a.slice();
ready
concat
b = [].concat(a);
ready
for-unshift
b = [];
for (var i = a.length; i--;) {
  b.unshift(a[i]);
}
ready
for-push
b = [];
for (var i = 0, l = a.length; i < l; i++) {
  b.push(a[i]);
}
ready
for-index
b = [];
for (var i = 0, l = a.length; i < l; i++) {
  b[i] = a[i];
}
ready
while 1
var i = a.length;
while (i--) {
  b[i] = a[i];
}
ready
slice(0)
b = a.slice(0);
ready
a.concat()
b = a.concat()
ready
Array
b = Array.apply(undefined, a);
ready
a.splice()
b = a.splice()
ready
JSON
b = JSON.parse(JSON.stringify(a));
ready
while 2
//Jörg Schaper
var i = a.length;
while (i>0) {
  c[--i] = a[i];
};
ready
while 3
//Jörg Schaper
var i = a.length;
while (i>7) {
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
};
while (i>0) {
  c[--i] = a[i];
};
ready
while 4
//Jörg Schaper
var i = a.length;
while (i>15) {
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
};
while (i>0) {
  c[--i] = a[i];
};
ready
while 5
//Jörg Schaper
var i = a.length;
while (i>31) {
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
};
while (i>7) {
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
};
while (i>0) {
  c[--i] = a[i];
};
ready
while 6
//Jörg Schaper
var i = a.length;
while (i>63) {
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
};
while (i>7) {
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
  c[--i] = a[i];
};
while (i>0) {
  c[--i] = a[i];
};
ready

Revisions

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