【问题标题】:How can I profile cache hits with lodash memoize?如何使用 lodash memoize 分析缓存命中?
【发布时间】:2019-01-16 05:08:41
【问题描述】:

我已经记住了将对象作为参数的 lodash 函数。当这个函数被调用时,我如何知道它访问缓存的频率与使用新参数评估函数的频率?

【问题讨论】:

    标签: javascript lodash memoization


    【解决方案1】:

    如果您只是在开发中执行此操作,则可以执行类似计算 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。

    【讨论】:

    • 谢谢 - 我只在开发中需要这个,所以这种方法对我有用。
    猜你喜欢
    • 2016-11-07
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 2019-03-04
    • 1970-01-01
    • 2011-10-31
    • 2015-08-27
    • 1970-01-01
    相关资源
    最近更新 更多