Object deep copy small test

JavaScript performance comparison

Revision 2 of this test case created

Info

jQuery vs JSON

Preparation code

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>
function cloneObject(obj) {
        var clone = {};
        for(var i in obj) {
            if(typeof(obj[i])=="object")
                clone[i] = cloneObject(obj[i]);
            else
                clone[i] = obj[i];
        }
        return clone;
    }
</script>
<script>
Benchmark.prototype.setup = function() {
    var doc = {
              "A7yzo8WcBQqTKjBeDPnA" : {
                "connectTime" : 1358468820297,
                "sharingAudio" : true,
                "sharingVideo" : true,
                "sharingData" : false,
                "stats" : [{
                    "remote" : null,
                    "local" : null
                  }, {
                    "remote" : null,
                    "local" : null
                  }, {
                    "remote" : null,
                    "local" : null
                  }, {
                    "remote" : null,
                    "local" : null
                  }
                ]
              },
              "B7yzo8WcBQqTKjBeDPnB" : {
                "connectTime" : 1358468820297,
                "sharingAudio" : true,
                "sharingVideo" : true,
                "sharingData" : false,
                "stats" : [{
                    "remote" : null,
                    "local" : null
                  }, {
                    "remote" : null,
                    "local" : null
                  }, {
                    "remote" : null,
                    "local" : null
                  }, {
                    "remote" : null,
                    "local" : null
                  }
                ]
              },
              "C7yzo8WcBQqTKjBeDPnC" : {
                "connectTime" : 1358468820297,
                "sharingAudio" : true,
                "sharingVideo" : true,
                "sharingData" : false,
                "stats" : [{
                    "remote" : null,
                    "local" : null
                  }, {
                    "remote" : null,
                    "local" : null
                  }, {
                    "remote" : null,
                    "local" : null
                  }, {
                    "remote" : null,
                    "local" : null
                  }
                ]
              }
            }
};
</script>

Preparation code output

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
jQuery extend
var b = $.extend(true, {}, doc);
pending…
JSON parser
var b = JSON.parse(JSON.stringify(doc));
pending…
Eval
eval("doc = " + JSON.stringify(doc))
pending…
Clone
var d = cloneObject(doc);
pending…

Compare results of other browsers

Revisions

You can edit these tests or add even more tests to this page by appending /edit to the URL. Here’s a list of current revisions for this page:

0 comments

Add a comment