chunk alternatives

Benchmark created by gunzof on


Setup

var chunker1 = function(chunkSize, array) {
        return [].concat.apply([],
            array.map(function(elem,i) {
                return i%chunkSize ? [] : [array.slice(i,i+chunkSize)];
            })
        );
    }
    
    var chunker2 = function (chunkSize, array) {
      var chunks = 0
      var chunked = []
      
      for (var i = 0, length = array.length; i < length; i++) {
        if (i % chunkSize === 0) {
          chunked.push([])
          
          chunks++
        }
        
        chunked[chunks - 1].push(array[i])
      }
      
      return chunked
    }
    
    var chunker3 = function (chunkSize, array) {
      var chunks = 0
      var chunked = []
      
      var from
      
      for (var i = 0, range = array.length / 4; i < range; i++) {
        from = i * 4
        
        chunked.push(array.slice(from, from + chunkSize))
      }
      
      return chunked
    }
    
    var testArray = []
    
    for (var i = 0; i < 50; i++) {
      testArray.push('item #' + i)
    }

Test runner

Ready to run.

Testing in
TestOps/sec
No. 1
chunker1(4, testArray)
ready
No. 2
chunker2(4, testArray)
ready
No. 3
chunker3(4, testArray)
ready

Revisions

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

  • Revision 1: published by gunzof on