写在R软体club,也於此分享 R.cache一些简单心得,希望R.cache多一点人用,
抛砖引玉一下
1. 套件名称: R.cache
package info:
https://github.com/HenrikBengtsson/R.cache
2. 套件主要用途: 将执行R运算时,函数执行结果"记忆"起来,不必再重算
最近找适合在shiny app做cache,将某些计算过後的值记起来的package,并让其他
session的使用者也用得到(加速),找到memoise、R.cache这两个package。
相较之下,R.cache 因为它的cache (存在file system)是persistent,其他shiny
session会用一样的cache (只要你给它的 key相同),但memoise每次在restart shiny
app都会重新建一个cache,也就是这个cache只能在同一session内重复被使用。所以在
shiny 环境下使用,R.cache成了不错的选择,但memoise其实提供不少功能,也许适用在
别的场合。
3. 套件主要函数列表:
有兴趣玩玩看的,我提供一个小范例(app.R),放在
https://goo.gl/QXfLQv
但我只用到了其中两个function: (其它请参考R.cache cran上的pdf)
a. saveCache() 顾名思义,将结果存入cache
b. loadCache() load结果出来
4. 其他:
实际应用在自己的shiny app,的确加速不少,适合应用在initial load,通常都是重复
的函数呼叫和计算。
值得一提的 R.cache的作者和 future package是同一位,做了相当多实用的package,但
似乎有点低调。R.cache的资讯很少。 R.cache 和 future 刚好在shiny上一个用在减少
intra-session delay,一个用在 inter-session (async)上
另外 shiny在更新到 1.2版时,提供了绘图上的cache (renderCachePlot) 初步看介绍,
有点类似memoise 提供的一些功能,也许memoise也会有改版?
[关键字]:
shinyapp, R.cache, memoise
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.228.154.239
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1541777889.A.FF6.html
1F:推 TreeMan: 推! 11/10 00:17
※ 编辑: cywhale (36.228.154.239), 11/10/2018 00:45:12
2F:推 isolaXCC: 推 11/10 15:46
3F:推 obarisk: 有这种情况真的可以考虑不用shiny了... 11/10 22:07
4F:→ cywhale: 不太确定o大的意思~是指renderCachePlot那一段吗? 11/10 23:28
5F:→ obarisk: 东西大到需要被cache的情况,就不太适合用shiny了 11/15 20:44
6F:→ obarisk: future我也觉得不太适合用在shiny 11/15 20:45