Skip to content

Instantly share code, notes, and snippets.

@DoonDoony
Last active October 29, 2018 15:43
Show Gist options
  • Save DoonDoony/a89601e51e709c6c5a2b614950e7e536 to your computer and use it in GitHub Desktop.
Save DoonDoony/a89601e51e709c6c5a2b614950e7e536 to your computer and use it in GitHub Desktop.
A code snipper for memoized getter performance test
// Required only nodejs
const { performance } = require('perf_hooks');
const obj = {
get memoizedGetter() {
delete this.memoizedGetter;
return this.memoizedGetter = [...Array(5e+7).keys()].reduce((prev, num) => prev + num, 0);
},
get commonGetter() {
return [...Array(5e+7).keys()].reduce((prev, num) => prev + num, 0);
},
};
const measureExecutionTime = (functionName, fn) => {
const start = performance.now();
fn();
return `[${functionName}] Elasped Time: ${performance.now() - start} ms`;
};
console.log(measureExecutionTime('Memoized Getter Test1', () => obj.memoizedGetter));
console.log(measureExecutionTime('Memoized Getter Test2', () => obj.memoizedGetter));
console.log(measureExecutionTime('Memoized Getter Test3', () => obj.memoizedGetter));
console.log(measureExecutionTime('Common Getter Test1', () => obj.commonGetter));
console.log(measureExecutionTime('Common Getter Test2', () => obj.commonGetter));
console.log(measureExecutionTime('Common Getter Test3', () => obj.commonGetter));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment