Skip to content

Instantly share code, notes, and snippets.

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 panetta-net-au/ebf42b169ae59a80f9e4aa015f41e269 to your computer and use it in GitHub Desktop.
Save panetta-net-au/ebf42b169ae59a80f9e4aa015f41e269 to your computer and use it in GitHub Desktop.
var keys = [];
var results = [];
var keyCount = 100;
var iterations = 10000;
//generate keys 0 to <keycount>
for (var i=0; i < keyCount; i++) {
keys.push(i);
results.push({ id: i })
}
//order keys randomly
keys.sort(k => Math.random()-0.5);
//non-sorted keys requiring reconciliation
var startDate = new Date();
for (var j=0; j < iterations; j++) {
var orderedResults = [];
for (var i=0; i < keys.length; i++) {
orderedResults.push(results.filter(r => r.id == keys[i])[0]);
}
}
console.log('Non-sorted: ' + (new Date() - startDate));
//sorted keys
startDate = new Date();
var sortFunction = (a, b) => a.id-b.id;
for (var j=0; j < iterations; j++) {
keys.sort(sortFunction);
results.sort(sortFunction);
}
console.log('----Sorted: ' + (new Date() - startDate));
//Sample output:
// >node index.js
// Non-sorted: 2428
// ----Sorted: 256
// >node index.js
// Non-sorted: 1980
// ----Sorted: 248
// >node index.js
// Non-sorted: 1963
// ----Sorted: 273
// >node index.js
// Non-sorted: 1924
// ----Sorted: 241
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment