有没有一种好方法可以判断我是否应该缓存计算结果?或者换句话说,在什么条件下从内存中检索比重新计算慢?
我知道基准测试会给出明确的答案。但是,基准测试非常耗时,尤其是在有许多小型计算需要测试时。我正在寻找一个好的经验法则,这在大多数情况下都会很好用。
我认为这与CPU的板载内存大小有关。可能是RAM的缓存延迟...
答案 0 :(得分:1)
有没有一种好方法可以判断我是否应该缓存a的结果 计算?或者以不同的方式询问,在什么条件下检索 从内存慢于重新计算?
我假设你问的是使用lookup-table (LUT)。 这取决于:
如果你有很多简单计算的结果,那么重新计算可能会更快。 如果您有复杂操作的结果可以存储在适合较低缓存级别(L1,L2)的LUT中,LUT可以加速您的代码。
但是,正如你所说,基准测试将给出明确的答案。 Here你有一个LUT与计算比较的例子。