angular.copy vs lodash.clone (v15)

Revision 15 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.