Guest User

Untitled

a guest
Feb 16th, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.95 KB | None | 0 0
  1. function memoize(fn) {
  2. const cache = {};
  3. return function (arg) {
  4. if (cache[arg]) {
  5. console.info(`Use cache to returns previous data`);
  6. return cache[arg];
  7. }
  8. const result = fn(arg);
  9. cache[arg] = result;
  10. return result;
  11. }
  12. }
  13.  
  14. function power3(x) {
  15. console.warn('Calculate result');
  16. return Math.pow(x, 30);
  17. }
  18.  
  19. const number = 12;
  20.  
  21. console.group('Regular: Calculate result');
  22. console.time();
  23. power3(number);
  24. console.timeEnd();
  25. console.groupEnd();
  26.  
  27. const fastPower3 = memoize(power3);
  28.  
  29. console.group('Memoize: Calculate result and save into cache');
  30. console.time();
  31. fastPower3(number);
  32. console.timeEnd();
  33. console.groupEnd();
  34.  
  35. console.group('Memoize: returns value from cache');
  36. console.time();
  37. fastPower3(number);
  38. console.timeEnd();
  39. console.groupEnd();
  40.  
  41. console.group('Memoize: returns value from cache (second time)');
  42. console.time();
  43. fastPower3(number);
  44. console.timeEnd();
  45. console.groupEnd();
Add Comment
Please, Sign In to add comment