benchmark.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. var inspector = require('inspector')
  2. //inspector.open(9330, null, true)
  3. var benchmark = require('benchmark')
  4. const { WeakLRUCache } = require('..')
  5. var suite = new benchmark.Suite();
  6. let cache = new WeakLRUCache()
  7. cache.loadValue = function() {
  8. return {}
  9. }
  10. let strongObject = cache.getValue(1)
  11. function hit() {
  12. let o = cache.getValue(1)
  13. }
  14. let i = 0
  15. let time = 0
  16. function miss(deferred) {
  17. i++
  18. cache.getValue(i)
  19. if (i % 30000== 0) {
  20. let lastTime = time
  21. time = Date.now()
  22. sizes.push(cache.size, time-lastTime)
  23. return setImmediate(() => deferred.resolve(), 10)
  24. }
  25. if (i % 100 == 0)
  26. return Promise.resolve().then(() => deferred.resolve())
  27. deferred.resolve()
  28. }
  29. let sizes = []
  30. //suite.add('hit', hit);
  31. suite.add('miss', {
  32. defer: true,
  33. fn: miss,
  34. })
  35. suite.on('cycle', function (event) {
  36. console.log(String(event.target));
  37. });
  38. suite.on('complete', function () {
  39. console.log('Fastest is ' + this.filter('fastest').map('name'));
  40. console.log(JSON.stringify(sizes))
  41. });
  42. suite.run({ async: true });