我有一个记住的lodash函数,该函数将一个对象作为其参数。调用此函数后,如何判断使用缓存的次数与使用新参数评估函数的频率?
答案 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。