我目前遇到缓存项目以在 Shiny(R 中)中使用的问题,并且想知道这样做的正确方法。一个例子是我需要使用 readRDS 加载一个大的 data.table,然后以各种方式切片和切块,并创建许多图表。我可以通过使用轻松缓存文件加载
LoadFile <- memoise(function(filepath) {...})
但是,当我尝试缓存计算结果时,我发现了问题。如果我有
f(data.table, data.table)
然后 memoise-ing f 似乎没有帮助,因为我看到第一次和后续调用之间没有加速并且非常相似的时间表明没有发生缓存。
这是 memoise 的已知缺点吗?是否有任何其他缓存库我可以使用来解决问题
cachefunction(myfunction(param1,param2))
设计模式?也就是说,如果 param1 和 param2 是大型复杂数据类型,那么制定密钥很耗时和/或可能不会正确发生。
在这种情况下,我真的想要更多的设计
cache(mykey, myvalue, [expiry date/time])
基于内存的缓存是我理想的追求,因为基于文件的缓存在网络环境中对于我正在做的事情来说太慢了。