卸载R包并释放内存

时间:2018-08-09 08:02:24

标签: r

我有一个Shiny应用程序,有时需要一些重量级的库(或者也许某些具有重量级依赖的库)。我在同一台服务器上运行了此Shiny应用程序的多个实例,每个进程使用的RAM变得越来越大。

我只想在需要此功能时才按需加载沉重的程序包,然后将其删除以释放其内存。 有什么好方法吗?

我尝试像这样使用detach,但是内存使用情况没有变化:

Packrat mode on. Using library in directory:
- "~/src/proj/ems/ems/packrat/lib"
> gc()
         used (Mb) gc trigger (Mb) limit (Mb) max used (Mb)
Ncells 309196 16.6     654011   35         NA   654011   35
Vcells 622274  4.8    8388608   64      16384  1957831   15
> library(tmap)
> gc()
          used  (Mb) gc trigger  (Mb) limit (Mb) max used  (Mb)
Ncells 2959222 158.1    5312251 283.8         NA  4946520 264.2
Vcells 4595134  35.1   10146329  77.5      16384  8388608  64.0
> detach("package:tmap", unload=TRUE, force=TRUE)
> gc()
          used  (Mb) gc trigger  (Mb) limit (Mb) max used  (Mb)
Ncells 2960717 158.2    5312251 283.8         NA  4946520 264.2
Vcells 4598885  35.1   10146329  77.5      16384  8388608  64.0

在这种情况下,这实际上是有道理的,因为tmap本身看起来很小,但是它使用的raster却很大。 但是,即使我使用raster执行相同的命令序列,也不会改变。

有什么建议吗?

0 个答案:

没有答案