Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从RAM中删除加载的drake缓存对象_R_Drake R Package - Fatal编程技术网

从RAM中删除加载的drake缓存对象

从RAM中删除加载的drake缓存对象,r,drake-r-package,R,Drake R Package,我计划在drake的缓存中创建一大组对象。现在,在计划之外,我在这些对象的子集上运行了lappy,这样我就可以总结它们的一些属性并计划接下来的步骤 我正在使用readd在我正在应用的函数中加载这些缓存对象中的每一个,但是在我处理完它们之后,它们似乎仍然会耗尽RAM。在我的场景中,这是一个问题,因为当它完成时已经有100Gib的RAM了。如果需要显式删除它们,我不确定应该在环境中的何处查找它们 我知道drake在用缓存做类似于记忆的事情,因为如果我两次读取同一个对象,第一次需要时间从磁盘读取,第二

我计划在drake的缓存中创建一大组对象。现在,在计划之外,我在这些对象的子集上运行了
lappy
,这样我就可以总结它们的一些属性并计划接下来的步骤

我正在使用
readd
在我正在应用的函数中加载这些缓存对象中的每一个,但是在我处理完它们之后,它们似乎仍然会耗尽RAM。在我的场景中,这是一个问题,因为当它完成时已经有100Gib的RAM了。如果需要显式删除它们,我不确定应该在环境中的何处查找它们


我知道drake在用缓存做类似于记忆的事情,因为如果我两次读取同一个对象,第一次需要时间从磁盘读取,第二次是瞬间读取。但在这种情况下,我希望将缓存视为与任何其他文件一样的简单数据源,以便对象在
rm()
'd或超出范围时不会占用RAM

找到了!由
get\u cache
new\u cache
返回的
storr
对象似乎具有
flush\u cache
方法。调用它,然后
gc()
,返回内存

是否应该在drake中的某个地方记录
flush\u cache
,即使它来自storr


我还发现,如果我使用
mclappy
从多个进程调用
readd
,对象不会停留在RAM中,因为它们不会被转移回主进程。

可能值得在上问一下,您是否认为文档需要更新,或者有改进的建议。很高兴在我开始之前您就解决了这个问题。
drake
中的主要问题现在应该在和中修复。我只是在保存和加载目标的
storr
函数调用中将
use\u cache
设置为
FALSE
drake
有自己的内存管理策略(请参阅
make()
memory\u management
garbage\u collection
参数),因此我们在内存缓存中不需要
storr
。因此,目前我们可能不需要更多的文档。主要更新:手册中有关于内存管理的新章节:。某些功能仅在新发布的
drake
7.4.0版中可用。