Last active
August 31, 2016 03:42
-
-
Save chandlerprall/857e91bc27c4a40845836dd1678ed60c to your computer and use it in GitHub Desktop.
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
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