【问题标题】:How to check the amount of RAM in R如何检查R中的RAM数量
【发布时间】:2011-09-21 09:16:27
【问题描述】:

我想创建一个函数,根据某人系统上可用的 RAM 量,导入不同批次的数据。但是我怎样才能找到 R 中可用 RAM 的数量呢?我可以使用memory.size(),但这仅适用于 Windows。

【问题讨论】:

  • 你不会实现一种方法来做到这一点。您将不得不检测平台然后使用不同的方法。
  • “如果你必须要价,你买不起。” 这看起来是错误的方法,因为内存和资源管理是由操作系统处理的。正如 Ramhound 所说,您的方法将变得依赖于平台。
  • 这个想法是得到一个粗略的值,它在某种程度上作为默认值。例如,1 批 12gb,2 批 6gb,等等。可以使用Sys.info() 找到平台,所以平台相关的方法应该是可能的吧?

标签: r ram


【解决方案1】:

鉴于前面评论中讨论的有关平台依赖性的警告,您可以例如在 Linux 上解析 /proc/meminfo

$ grep MemFree /proc/meminfo 
MemFree:          573660 kB
$ awk '/MemFree/ {print $2}' /proc/meminfo 
565464

您可以通过system(..., intern=TRUE) 尝试第二种方法,甚至可以通过管道连接。

大约 5 年后编辑: 在 R 中,并遵循上一段暗示的内容:

R> memfree <- as.numeric(system("awk '/MemFree/ {print $2}' /proc/meminfo", 
+                               intern=TRUE))
R> memfree
[1] 3342480
R> 

【讨论】:

  • 我建议在调用此函数之前使用gc() 以获得真实的可用内存量。
  • 输出单位是字节吗? Windows中的R通常指定
  • 对于那些喜欢复制粘贴代码的人:as.numeric(system("awk '/MemFree/ {print $2}' /proc/meminfo", intern=TRUE))
  • CRAN 不允许这样做。
  • @Prradep 这很有用,因为它摆脱了所有可以清理的东西以释放一些内存。
【解决方案2】:

现在您可以使用 benchmarkme::get_ram 函数来做到这一点。

https://cran.r-project.org/web/packages/benchmarkme/benchmarkme.pdf

【讨论】:

  • get_ram() 无法获得可用内存。
【解决方案3】:

我建议使用memuse::Sys.meminfo()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-27
    • 2018-06-28
    • 2011-04-29
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    • 2016-04-14
    • 2021-08-26
    相关资源
    最近更新 更多