如何使用lodash记录分析缓存命中?

时间:2018-08-08 20:24:09

标签: javascript lodash memoization

我有一个记住的lodash函数,该函数将一个对象作为其参数。调用此函数后,如何判断使用缓存的次数与使用新参数评估函数的频率?

1 个答案:

答案 0 :(得分:0)

如果您只是在开发中进行操作,则可以执行一些操作,例如计算cache.get被调用的次数与函数被调用的次数。像

var calls = 0;
var hits = 0;

function test(b) {
  calls += 1;
  return b + 1;
}

var mem_test = _.memoize(test);

mem_test.cache.get = function(n) {
  var cached = mem_test.cache.get;
  calls += 1;
  hits += 1;
  return function() {
    var result = cached.call(this, n);
    return result;
  }
}
mem_test(1);
mem_test(2);
mem_test(2);
console.log(calls);
console.log(hits);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>

这个简单的例子应该输出3和1。