R:无法分配大于 x MB 的内存

2024-03-15

我在 R 中有一个 main 函数,它调用其他文件来运行我的程序。我通过bat文件(.exe)调用主文件。当我逐行运行它时,它运行时不会出现内存错误,但是当我调用 bat 文件来运行它时,它会停止并给出以下错误:

无法分配大于 51 MB 的内存。

我怎样才能避免这种情况?


像这样的 R 内存限制对于我们很多人来说都是一场反复出现的噩梦。

很多时候,问题是操作系统限制(通常可以在 Bash 或 PowerShell 命令行上更改)、体系结构所施加的限制(32 与 64 位),或可用性连续的空闲 RAM,无论总体可用内存有多少。

很难说为什么某些东西在逐行运行时不会导致内存问题,但在作为 .bat 运行时会达到内存限制。

您运行的是哪个版本的 R?你两个都安装了吗? 32位是否被调用Rscript当您运行 .bat 文件而逐行运行 64 位版本时?您可以检查正在运行的 R 版本R.Version().

您可以通过运行命令来测试这一点memory.limit()在您的 R IDE/终端和 .bat 文件中(请务必print或将结果保存为 .bat 文件中的对象)。你也可以尝试一下setting memory.limit()在您的 .bat 文件中,因为它可能只是具有较小的默认值,这可能是由于 IDE 或终端中调用的 R 配置文件与 .bat 文件中调用的差异所致。

如果架构isn't内存错误的原因,那么您还可以尝试以下几个故障排除步骤:

  1. 使用以下命令检查两个环境中的内存使用情况(直接在 R 中或通过 .bat 进程):sort( sapply(ls(),function(x){object.size(get(x))}))
  2. 在脚本中显式运行垃圾收集器,这就是gc() command
  3. 检查所有对象大小以确保 .bat 进程中没有意外结果:sort( sapply(ls(),function(x){format(object.size(get(x)), units = "Mb")}))
  4. 尝试内存分析:

    Rprof(tf <- "rprof.log", memory.profiling=TRUE)
    Rprof(NULL)
    summaryRprof(tf)
    
  5. 虽然这是一个 RAM 问题,但为了更好地衡量,您可能需要检查可用的计算能力是否足够,并且在这两种运行代码的方式之间没有变化:parallel::detectCores()

  6. 与 Hadley Wikham 教授一起检查您的表现lineprof工具(警告:需要devtools并且不适用于调用 C 编程语言的代码行)

    参考虽然我从自己的代码中提取这些片段,但其中大部分最初来自其他相关的 StackOverflow 帖子,例如:

    1. 在 R 中实现内存分配 https://stackoverflow.com/questions/25419769/reaching-memory-allocation-in-r
    2. R 内存分配“错误:无法分配大小为 75.1 Mb 的向量” https://stackoverflow.com/questions/10917532/r-memory-allocation-error-cannot-allocate-vector-of-size-75-1-mb
    3. R 内存限制警告与“无法分配...” https://stackoverflow.com/questions/15101045/r-memory-limit-warning-vs-unable-to-allocate
    4. 如何计算一般类型分配的内存大小 https://stackoverflow.com/questions/14717826/how-to-compute-the-size-of-the-allocated-memory-for-a-general-type
    5. R:R 中“无法分配向量大小 n mb”的任何其他解决方案吗? https://stackoverflow.com/questions/13343299/r-any-other-solution-to-cannot-allocate-vector-size-n-mb-in-r?rq=1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R:无法分配大于 x MB 的内存 的相关文章

  • Shiny 中的模态对话框:可以调整宽度但不能调整高度

    在我的 Shiny 应用程序中 我有几个来自闪亮BS 包的模式窗口 我可以像这样调整这些模式窗口的宽度 tags head tags style HTML modal lg width 1200px abs 1 background col
  • 在 mts 对象上使用 Apply 系列函数

    在 mts 对象上使用 apply 或 sapply 会在发送到函数时删除其时间序列属性 我应该如何在 mts 对象中的每个时间序列上应用相同的函数 带有 ts 输入和 ts 输出 并返回它 最好是 mts 我的意思是除了使用 for 循环
  • 来自 data.frame 每一列的随机样本

    我想从 a 的每一行中抽取随机样本data frame独立于其他行 这是一个例子 此代码为每行选择相同的列 但我需要为每行独立选择列 library plyr set seed 12345 df1 lt mdply data frame m
  • 清除堆内存以防止内存不足异常

    我知道已经有人问过有关内存不足的问题 但我没有找到解决方案 在位图工厂中 我出现内存不足异常 甚至使用 inSampleSize 1 所以我经常用 try catch 内存不足异常来包围它 因为这是一个不好的做法 try catch Out
  • 存储整数列表的最有效方法

    我最近一直在做一个项目 其中一个目标是使用尽可能少的内存来使用 Python 3 存储一系列文件 除了一个整数列表之外 几乎所有文件都占用很少的空间 大致333 000整数长且整数可达约8000在尺寸方面 我目前正在使用pickle存储列表
  • profvis() 何时以及为何显示“源不可用”?

    我经常分析 R 代码 并大量使用 profvis 对于某些函数 浏览器窗口的上半部分会显示源代码 有时则不会 我不知道什么时候会出现这种情况 对我来说这似乎是随机的 有谁知道 profvis 何时以及为什么无法在顶部窗口中显示代码 发生这种
  • Java堆和栈内存分配

    class Person private String name public Person public Person String name this name name public static void main String a
  • Quarto/Rmarkdown 中的美人鱼图:狭窄且模糊

    我正在尝试生成 pdf 格式的四开文档 稍后会生成 word 格式 我遇到了美人鱼图的问题 请在下面找到一个示例 qmd 文件来说明该问题 所以首先它应该支持 mermaid 标签 但当我这样做时 我无法在 rstudio 中 运行 单元
  • 正则表达式挑选括号之间的一些文本[重复]

    这个问题在这里已经有答案了 可能的重复 提取 R 中所有括号内的信息 正则表达式 https stackoverflow com questions 8613237 extract info inside all parenthesis i
  • udunits2 R 安装:找不到 udunits2.h

    我正在尝试在 R 中安装 udunits2 以满足对ggforce包裹 但是 安装程序在检查 udunits2 时始终失败 我已经尝试过中的说明this https stackoverflow com questions 47059517
  • Dplyr 多重滞后整齐评估?

    我试图在 dplyr 中使用尽可能少的代码来实现多个滞后 同时坚持整洁的评估 以下标准评估 SE 代码有效 if require dplyr install packages dplyr library dplyr a as tibble
  • R:使用管道将单个参数传递到函数中的多个位置

    我试图专门使用管道来重写以下代码 使用babynames包中的babynames数据 library babynames library dplyr myDF lt babynames gt group by year gt summari
  • 在捕食者-被捕食者系统的生态建模中正确使用 deSolve

    我有一个捕食者 被捕食者模型 其中包含指定的参数和初始值 我在这里用两种方法求解微分方程 1 使用 for 循环 2 使用 deSolve 包 我相信 for 循环是正确的 并且应该给出如下图所示的输出 For loop attempt r
  • 在 R 中修改传单弹出窗口

    我想修改 R 中传单弹出窗口的外观 帮助文件指出 in the popupOptions 函数需要 传递给底层 Javascript 对象构造函数的额外选项 In 这个例子 https rstudio github io leaflet p
  • 带有嵌套分组变量的多行轴标签,用于 - R 中的堆积条形图

    我想使用 ggplot 制作一个包含多个类别的堆叠条形图 并带有嵌套的标记 X 轴 类似于我使用 Excel 制作的条形图 如此处所示 我尝试使用给出的例子here https stackoverflow com questions 181
  • R中有字典功能吗

    有没有办法在 R 中创建一个 字典 使其具有对 一些效果 x dictionary c Hi Why water c 1 5 4 x Why 5 我问这个是因为我实际上正在寻找两个分类变量函数 所以如果 x dictionary c a b
  • 通过 RCpp 返回 NA

    新手 RCpp 问题在这里 How can I make a NumericVector returnNA到R 例如 假设我有一个 RCpp 代码 它分配NA到向量的第一个元素 RCpp export NumericVector myFun
  • R:如何更改ggvis闪亮应用程序中特定范围的绘图背景颜色

    I have a simple shiny app like below and you can run it The plots are created by ggvis and user can choose student name
  • 在 ggplot 中过滤管道 df

    我正在使用 dplyr 管道来清理我的 df 然后直接输入到 ggplot 中 但是 我只想一次只绘制一组 因此我需要过滤到该组 问题是 我希望比例保持不变 就好像所有群体都存在一样 是否可以在 ggplot 命令中进一步过滤管道 df 例
  • 使用插入符和方法 = gamLoess 进行训练时 R 崩溃

    当我运行下面的代码时 R 崩溃了 如果我在训练调用中注释掉tuneGrid行 就不会发生崩溃 我已经用另一个数据集尝试过此操作 但仍然使 R 崩溃 崩溃消息是 R 会话中止 R遇到致命错误 会话被终止 开始新会话 代码是 library s

随机推荐

  • 为什么这个类有两个构造函数?

    我在旨在说明构造函数的幻灯片中看到了这一点 我现在很困惑 因为它有两个具有相同工作的构造函数 接受在第二个构造函数中将 gpa 设置为零 为什么编码器需要重复this id id this name name 再次 为什么这个类需要两个构造
  • 来自 Python 的 AWS 网络负载均衡器后面的客户端 IP

    当在网络负载均衡器后面运行套接字服务器时 实例由 IP 指定 server sock socket socket family socket AF INET type socket SOCK STREAM proto socket IPPR
  • InvalidArgumentError:索引[0,0] = -1 不在 [0, 10) 中

    它与 MLP 一起进行二元分类效果很好 然而 在 LSTM 和卷积中 它给出了InvalidArgumentError 我发现 y 需要重塑 我就这么做了 我尝试了 x 的所有正值 并且模型运行良好 那么负值有什么问题呢 数据在代码中给出
  • Android 应用程序使用 android.permission.READ_LOGS - 这是不礼貌的吗?

    我有一个可以从 Android Market 获取的应用程序 一些用户要求在事情没有按预期进行时进行调试 我一直在考虑添加一个菜单项来显示输出 Process mLogcatProc null BufferedReader reader n
  • Dagger2:用组件本身注入模块提供的实现类

    考虑到模块都是通过 Dagger1 规范相互共享的complete false library true 您可以收到由 Provides通过构造函数参数的方法 就像这样 public class GetUserForUsernameTask
  • 如何计算列表中项目的出现次数

    我是 Dart 新手 目前我有一个重复项目列表 我想计算它们的出现次数并将其存储在地图中 var elements a b c d e a b c f g h h h e a 我想要得到这样的结果 a 3 b 2 c 2 d 2 e 2 f
  • 格式 - 帮助打印表格

    这个问题可能会以捂脸结束 但我已经尝试了一段时间 尽管阅读了超规范 但仍然卡住了 基本上我想做的是 format t 5d 1 23 2 312 23 456 1 7890 但不应该对 5 进行硬编码 而是应该从列表中计算 任何嵌套列表中最
  • 从 ANDROID 2.2 发送 UDP 包(HTC 希望)

    我有一个局域网 我想从我的 android htcdesire 发送一条 udp 消息到我的电脑 它们之间有一个 WLAN 路由器 问题是 UPD 消息永远不会到达 PC Android上的代码 package org example an
  • JSON 架构允许日期或空字符串

    我需要定义一个 JSON 模式 其中输入可以是日期或空字符串 我当前的 JSON 架构是 type object required FirstName DateOfBirth properties FirstName type string
  • R - 自动调整 Excel 列宽

    如何使用自动调整列宽openxlsx 我的其中一列有一个日期变量 例如21 08 2017 并且如果使用复制ctrl c从 Excel 中 并正常粘贴到其他地方 它显示为 如果增加列宽以显示 Excel 中的内容 则可以正常粘贴 我想将重复
  • 在 d3 中设置 id 问题

    这就是我正在做的 selection canvas selectAll circle data mydata selection enter append circle selection attr id function d i var
  • Scala - Slick - 获取包装选项的 TypedType[T]

    通常创建这样的自定义 ID case class CustomID value Int extends MappedTo Int 并用 Option CustomID 等类型表示可为 null 的自定义 ID 但是 我希望能够将 Optio
  • 为什么 >= 有效但 => 无效?

    当检查一个整数是否等于或大于当前数字时 所以我输入 if 5 gt 6 Bla 但它显示这是一个错误 为什么 这不是完全一样吗 if 5 gt 6 Bla 它不起作用的原因是因为 gt 不等于 gt gt 用于拉姆达表达式 http msd
  • Nil 和 List 作为 Scala 中的 case 表达式

    此代码编译 def wtf arg Any arg match case Nil gt Nil was passed to arg case List gt List was passed to arg case gt otherwise
  • Java - split(regex, limit) 方法实际上如何工作? [复制]

    这个问题在这里已经有答案了 我试图了解 split 方法的工作原理 但对此有些困惑 在 oracle 文档页面给出的这个示例中 String str boo and foo String str1 str split o 2 Output
  • 如何在 AWS Lambda 函数中获取 AWS API Gateway 调用 URL?

    我正在将代理集成与 Java lambda 函数结合使用 lambda 处理程序的输入是一个表示传入请求的 JSON 对象 它有正文 标头 查询参数等 但它不包括 API 网关解析的正文的源 URL 查询参数等 有没有办法获取它 问题是 A
  • 姜戈树胡子 AL、NS、MP 之间有什么区别

    我正在尝试制作一个模型来对某些对象进行分类 我已经尝试使用 django mptt 轻松检索相关类别 现在我正在搜索不同的解决方案以找到最好的解决方案 我无法找出物化路径 邻接列表和嵌套集之间的主要区别 维基百科没有给我一个简短的答案 我所
  • 在 VB.Net 中获取 COM 对象的特定实例

    我正在 Net 中编写一个 Windows 窗体应用程序 以列出第三方 CAD CAM 软件 在本例中为 CATIA 的所有正在运行的实例 并让用户选择其中一个来执行几个自动化任务 为了执行自动化任务 我需要获取 COM 对象的特定实例 与
  • 我应该如何使用 Laravel 提供图像?

    我将用户个人资料图片存储在 laravel 存储文件夹而不是公共文件夹中 因为我想保持公共文件夹干净 避免用户混乱 为了从该文件夹提供图像 我创建了一个简单的控制器操作 如下所示 public function profilePicture
  • R:无法分配大于 x MB 的内存

    我在 R 中有一个 main 函数 它调用其他文件来运行我的程序 我通过bat文件 exe 调用主文件 当我逐行运行它时 它运行时不会出现内存错误 但是当我调用 bat 文件来运行它时 它会停止并给出以下错误 无法分配大于 51 MB 的内