arguments vs. array performance (v5)

Revision 5 of this benchmark created by Roland Pihlakas on


Setup

var res = []
  function argumentsSimpleLoop(){
      for(var i = 0, l = arguments.length; i < l; i++){
          res.push(arguments[i])
      }
  }
  
  var res2 = []
  function argumentsSimpleLoop2(){
      res2 = new Array(arguments.length);
      for(var i = 0, l = arguments.length; i < l; i++){
          res2[i] = arguments[i];
      }
  }
  
  function arrayForEach(arr){
      arr.forEach(function(n) {
          res.push(n);
      });
  }
  
  function argumentsToArray() {
      var arr = Array.prototype.slice.call(arguments);
      arr.forEach(function(n) {
          res.push(n);
      });
  }
  function argumentsAssignToArray() {
      return Array.prototype.slice.call(arguments);
  }
  
  function argumentsExplicit (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {
      return new Array(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
  }

Teardown



            res = []
        
  

Test runner

Ready to run.

Testing in
TestOps/sec
arguments simple loop
argumentsSimpleLoop(0,1,2,3,4,5,6,7,8,9)
ready
array forEach
arrayForEach([0,1,2,3,4,5,6,7,8,9])
ready
arguments to array
argumentsToArray(0,1,2,3,4,5,6,7,8,9)
ready
argumentsAssignToArray
res = argumentsAssignToArray(0,1,2,3,4,5,6,7,8,9)
ready
Explicit
res = argumentsExplicit(0,1,2,3,4,5,6,7,8,9)
ready
arguments simple loop with preallocation
argumentsSimpleLoop2(0,1,2,3,4,5,6,7,8,9)
ready

Revisions

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