angular.copy vs lodash.clone (v16)

Revision 16 of this benchmark created on


Preparation HTML

<script src="//rawgithub.com/lodash/lodash/2.4.1/dist/lodash.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.14/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)
    };
    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);
}
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.