Last active
April 26, 2018 12:04
-
-
Save ayinlaaji/f0b9f46cba8ca404524eea52de090089 to your computer and use it in GitHub Desktop.
immutable Objects #jsbench #jsperf (http://jsbench.github.io/#f0b9f46cba8ca404524eea52de090089) #jsbench #jsperf
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta charset="utf-8"/> | |
<title>immutable Objects #jsbench #jsperf</title> | |
<script src="https://cdnjs.cloudflare.com/ajax/libs/benchmark/1.0.0/benchmark.min.js"></script> | |
<script src="./suite.js"></script> | |
</head> | |
<body> | |
<h1>Open the console to view the results</h1> | |
<h2><code>cmd + alt + j</code> or <code>ctrl + alt + j</code></h2> | |
</body> | |
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"use strict"; | |
(function (factory) { | |
if (typeof Benchmark !== "undefined") { | |
factory(Benchmark); | |
} else { | |
factory(require("benchmark")); | |
} | |
})(function (Benchmark) { | |
var suite = new Benchmark.Suite; | |
Benchmark.prototype.setup = function () { | |
var Obj = { name: 'kev', age:2} | |
}; | |
suite.add("Using object.assign to merge", function () { | |
//Using object.assign to merge | |
var newObj = {name: 'Smith'} | |
var xr1 = Object.assign({}, Obj, newObj); | |
}); | |
suite.add("Using rest with default to merge", function () { | |
//Using rest with default to merge | |
var xr2 = { ...Obj, name:'Smith'} | |
}); | |
suite.add("Using rest to merge", function () { | |
//Using rest to merge | |
var update = {name: 'Smith'} | |
var xr3 = { ...Obj, ...update} | |
}); | |
suite.on("cycle", function (evt) { | |
console.log(" - " + evt.target); | |
}); | |
suite.on("complete", function (evt) { | |
console.log(new Array(30).join("-")); | |
var results = evt.currentTarget.sort(function (a, b) { | |
return b.hz - a.hz; | |
}); | |
results.forEach(function (item) { | |
console.log((idx + 1) + ". " + item); | |
}); | |
}); | |
console.log("immutable Objects #jsbench #jsperf"); | |
console.log(new Array(30).join("-")); | |
suite.run(); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment