ko.viewmodel vs ko.mapping vs knockout.wrap vs knockout.mapper (v25)

Revision 25 of this benchmark created on


Description

Performance comparison between the knockout mapping plugins ko.viewmodel and ko.mapping and knockout.wrap and knockout.mapper

Preparation HTML

<script src="http://cdnjs.cloudflare.com/ajax/libs/knockout/3.1.0/knockout-min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/knockout.mapping/2.3.5/knockout.mapping.js"></script>
<script src="http://coderenaissance.github.com/knockout.viewmodel/knockout.viewmodel.min.js"></script>
<script src="https://rawgit.com/arj03/knockout.wrap/master/knockout.wrap.js"></script>
<script src="https://rawgit.com/lucaslorentz/knockout.mapper/master/knockout.mapper.js"></script>

Setup

var numberOfArrayRecords = 100,
      viewmodel = null,
      model = {
        items: []
      };
    
    for (var x = 0; x < numberOfArrayRecords; x++) {
      model.items.push({
        string: "Test",
        number: 4,
        anotherObject: {
          items: [{
            id: 4,
            name: "Test"
          }, {
            id: 7,
            name: "Test2"
          }]
        }
      });
    
    }

Test runner

Ready to run.

Testing in
TestOps/sec
ko.mapping
viewmodel = ko.mapping.fromJS(model);
ready
ko.viewmodel
viewmodel = ko.viewmodel.fromModel(model);
ready
knockout.wrap
viewmodel = ko.wrap.fromJS(model);
ready
knockout.mapper
viewmodel = ko.mapper.fromJS(model);
ready

Revisions

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