0

我正在使用中介包来运行中介分析。

但是当我调用这个mediate函数时,R 吃光了所有的 RAM,然后它吃光了所有的交换空间,然后 RStudio 突然关闭了。

如果我Rscript从终端呼叫,终端突然关闭,也会发生同样的情况。

这是 RAM 和交换的措施。注意峰:

在此处输入图像描述

这发生在 Fedora 存储库(使用 Open BLAS)附带的 R 4.0.5 版本中,以及我从源代码针对英特尔 MKL 编译的自定义 R 4.1.0 版本中。

这是什么原因,我该如何调试?

这是我目前的sessionInfo()

> sessionInfo()
R version 4.1.0 (2021-05-18)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Fedora 34 (Workstation Edition)

Matrix products: default
BLAS/LAPACK: /opt/intel/oneapi/mkl/2021.2.0/lib/intel64/libmkl_gf_lp64.so.1

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=en_GB.UTF-8       
 [4] LC_COLLATE=en_US.UTF-8     LC_MONETARY=en_GB.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_GB.UTF-8       LC_NAME=C                  LC_ADDRESS=C              
[10] LC_TELEPHONE=C             LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] compiler_4.1.0 tools_4.1.0  
4

1 回答 1

0

如果应用程序需要所有 RAM 和所有虚拟 RAM,那么您肯定会达到计算机的硬限制。如果应用程序现在向操作系统请求更多 RAM,则该请求必须失败。您希望应用程序如何处理它?

由于我们不知道为什么需要更多 RAM(可能是内存泄漏,也可能是算法只需要这么多)我们无法区分错误或功能,但我们可以尝试解决这个问题。

一件相当便宜的尝试是增加虚拟内存大小。执行速度会变慢(磁盘访问以 ms 为单位,而 RAM 访问时间以 ns 为单位),但也许您会找到应用程序可以完成任务的值。

如果您找不到虚拟内存的任何限制,并且应用程序总是由于内存不足的情况而崩溃,那么您很可能面临一个错误。

在任何情况下,您都可能想与供应商讨论这种看法。

于 2022-02-10T22:02:27.260 回答