如何缓存带有备忘录的查询数据结果?
我已经用我的数据对其进行了尝试,但完全没有区别。
这是我的职责
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 或没有。
有任何想法吗?
您只能在记忆功能的第二次及以后的调用中得到加速。第一次调用时,它运行“包装”功能并缓存其输出。您应该在第二次致电时注意到差异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)