闪亮的应用程序-使用备忘录来缓存R值

lau*_*kok 1 r shiny

如何缓存带有备忘录的查询数据结果?

我已经用我的数据对其进行了尝试,但完全没有区别。

这是我的职责

runQuery <- function(DB, query, site) {

    # Match the pattern and replace it.
    dataQuery <- sub("SITE", as.character(site), query)

    # Store the result in data1.
    data = dbGetQuery(DB, dataQuery)

    return(data)
}

memoise_data <- memoise(runQuery)

data1 <- memoise_data(DB, dataQuery, site1)
Run Code Online (Sandbox Code Playgroud)

该地块仍然需要21.61824秒是否有memoise 或没有

有任何想法吗?

boj*_*jan 5

您只能在记忆功能的第二次及以后的调用中得到加速。第一次调用时,它运行“包装”功能并缓存其输出。您应该在第二次致电时注意到差异memoise_data()

例如:

f <- function() { 
  a <- rnorm(1e5)
  5 
} 
system.time(f())
user  system elapsed 
0.05    0.00    0.05 
mf <- memoise::memoise(f)
system.time(mf())
user  system elapsed 
0.05    0.00    0.05 
system.time(mf())
user  system elapsed 
0       0       0 
Run Code Online (Sandbox Code Playgroud)