angular.copy vs lodash.clone (v21)

Revision 21 of this benchmark created on


Preparation HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/3.6.0/lodash.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>

Setup

var obj_to_clone = {
      '@timestamp': '2011-10-10T10:20:90',
      host: 'some.host.name',
      source: 'some.source',
      level: 'undefined',
      severity: 0,
      trace: Math.floor(Math.random() * 1e12).toString(36),
      nested_arr: [1, 2, 3, 4],
      nested_obj: {
        a: 1,
        b: 2,
        c: 3,
        d: 4
      }
    };
    var len = 10000;

Test runner

Ready to run.

Testing in
TestOps/sec
angular.copy
for (var i = 0; i < len; ++i) {
  var clone_obj = angular.copy(obj_to_clone);
}
ready
lodash.clone
for (var i = 0; i < len; ++i) {
  var clone_obj = _.clone(obj_to_clone, true);
}
ready
lodash.cloneDeep
for (var i = 0; i < len; ++i) {
  var clone_obj = _.cloneDeep(obj_to_clone);
}
ready
JSON.parse(JSON.stringify())
for (var i = 0; i < len; ++i) {
  var clone_obj = JSON.parse(JSON.stringify(obj_to_clone));
}
ready

Revisions

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