使用 R 函数初始化的缓存中的可用内存量:`memoise::memoise()`
Amount of available memory in cache initialised with the R function: `memoise::memoise()`
我反复调用这样初始化的记忆函数:
library(memoise)
memoised_func <- memoise::memoise(func)
我知道我可以使用 cache
参数 (https://www.rdocumentation.org/packages/memoise/versions/2.0.0/topics/memoise) 设置分配给 memoised_func
的缓存大小。但是有没有办法查看在任何一个时间点缓存中有多少可用内存?
我问是因为我想知道它是否正在填满,因此可以通过增加缓存的大小来加快我的程序。
(我 运行 R 4.0.2
在 Ubuntu 20.10
以防相关)
我找到了解决此问题的解决方法。
默认情况下 memoise
使用 cachem::cache_mem
创建缓存。或者,我可以使用 cachem::cache_disk
来指定缓存在文件系统上的位置。然后查看缓存中有多少空闲内存是微不足道的:
library(memoise)
library(cachem)
#assigned in global scope
cache.dir <<- tempdir()
cache.size <<- 2048 * 1024^2
memoised_func <- memoise::memoise(func,
cache = cachem::cache_disk(
dir = cache.dir,
max_size = cache.size))
cache.percent.full <- function() {
used.mem <- file.size(dir(cache.dir, full.names = TRUE)) %>%
sum()
return(used.mem/cache.size * 100)
}
我反复调用这样初始化的记忆函数:
library(memoise)
memoised_func <- memoise::memoise(func)
我知道我可以使用 cache
参数 (https://www.rdocumentation.org/packages/memoise/versions/2.0.0/topics/memoise) 设置分配给 memoised_func
的缓存大小。但是有没有办法查看在任何一个时间点缓存中有多少可用内存?
我问是因为我想知道它是否正在填满,因此可以通过增加缓存的大小来加快我的程序。
(我 运行 R 4.0.2
在 Ubuntu 20.10
以防相关)
我找到了解决此问题的解决方法。
默认情况下 memoise
使用 cachem::cache_mem
创建缓存。或者,我可以使用 cachem::cache_disk
来指定缓存在文件系统上的位置。然后查看缓存中有多少空闲内存是微不足道的:
library(memoise)
library(cachem)
#assigned in global scope
cache.dir <<- tempdir()
cache.size <<- 2048 * 1024^2
memoised_func <- memoise::memoise(func,
cache = cachem::cache_disk(
dir = cache.dir,
max_size = cache.size))
cache.percent.full <- function() {
used.mem <- file.size(dir(cache.dir, full.names = TRUE)) %>%
sum()
return(used.mem/cache.size * 100)
}