Skip to content

Instantly share code, notes, and snippets.

@chandlerprall
Last active August 31, 2016 03:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chandlerprall/857e91bc27c4a40845836dd1678ed60c to your computer and use it in GitHub Desktop.
Save chandlerprall/857e91bc27c4a40845836dd1678ed60c to your computer and use it in GitHub Desktop.
var Immutable = require('immutable');
Immutable.Map.Empty = new Immutable.Map();
var map = new Immutable.Map({test: 'ing'});
var start = Date.now();
for (var i = 0; i < 10000000; i++) {
var thing = map.get('test');
}
var end = Date.now();
console.log('baseline', end - start);
var map = new Immutable.Map({test: 'ing'});
var start = Date.now();
for (var i = 0; i < 10000000; i++) {
var thing = map.get('test', new Immutable.Map());
}
var end = Date.now();
console.log('successful accessor, always creating new map', end - start);
var map = new Immutable.Map();
var start = Date.now();
for (var i = 0; i < 10000000; i++) {
var thing = map.get('test') || new Immutable.Map();
}
var end = Date.now();
console.log('successful accessor, conditionally creating new map', end - start);
var map = new Immutable.Map({test: 'ing'});
var start = Date.now();
for (var i = 0; i < 10000000; i++) {
var thing = map.get('test', new Immutable.Map());
}
var end = Date.now();
console.log('failed accessor, always creating new map', end - start);
var map = new Immutable.Map();
var start = Date.now();
for (var i = 0; i < 10000000; i++) {
var thing = map.get('test') || new Immutable.Map();
}
var end = Date.now();
console.log('failed accessor, conditionally creating new map', end - start);
var map = new Immutable.Map();
var emptyMap = new Immutable.Map();
var start = Date.now();
for (var i = 0; i < 10000000; i++) {
var thing = map.get('test', emptyMap);
}
var end = Date.now();
console.log('failed accessor, locally cached map', end - start);
var map = new Immutable.Map();
var emptyMap = new Immutable.Map();
var start = Date.now();
for (var i = 0; i < 10000000; i++) {
var thing = map.get('test', Immutable.Map.prototype.Empty);
}
var end = Date.now();
console.log('failed accessor, immutable cached map', end - start);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment