r - 使用 R 函数初始化的缓存中的可用内存量:`memoise::memoise()`
问题描述
我反复调用一个这样初始化的记忆函数:
library(memoise)
memoised_func <- memoise::memoise(func)
我知道我可以memoised_func
使用cache
参数(https://www.rdocumentation.org/packages/memoise/versions/2.0.0/topics/memoise)设置分配给缓存的大小。但是有没有办法在任何一个时间点查看缓存中有多少可用内存?我问是因为我想知道它是否已满,因此我的程序可以通过增加缓存的大小来加速。
(我会继续运行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)
}
推荐阅读
- typescript - “AngularFireAuth”类型上不存在属性“createUserWithEmailAndPassword”
- javascript - 是否有任何方法可以使用 Promise.all 中断承诺数组的并行执行
- image - Webpack 对图像的编译时间很慢
- ionic-framework - 如何在ionic4中获取来电号码?
- angular - primeNG 中的数据视图未显示为网格
- c++ - MSVC:模板转换运算符和多重继承的错误
- c# - Azure Functions C# CloudTable 表查询不返回任何匹配结果
- c - 这是使用 ADC 更新全局变量的正确方法吗?
- spring - 如何避免服务序列化
- node.js - NodeJS 中的路由和请求解释