相关疑难解决方法(0)

监视R中的内存使用情况

是否可以监视正在使用或已被R用于调用函数的内存量?例如,我有一个任意函数,例如:

smallest.sv <- function(){
  A <- matrix(rnorm(1e6), 1e3);
  mysvd <- svd(A);
  return(tail(mysvd$d, 1));
}
Run Code Online (Sandbox Code Playgroud)

运行该函数只返回一个标量,但是使用了大量的内存来计算函数.现在我需要进行性能基准测试.处理时间很简单:

system.time(x <- smallest.sv())
Run Code Online (Sandbox Code Playgroud)

但是我还想知道这个调用需要多少内存,而不需要修改函数(它应该适用于任意函数).有没有办法做到这一点?

编辑:澄清一下.我最感兴趣的是在函数调用期间使用的内存上限,即需要多少物理内存才能处理函数调用.在许多情况下,这远远低于我认为的分配内存总量.

r

36
推荐指数
3
解决办法
1万
查看次数

R中的内存分析 - 用于汇总的工具

R有一些内存分析工具,比如 Rprofmem(),Rprof()选项"memory.profiling=TRUE"tracemem().最后一个只能用于对象,因此可以跟踪复制对象的次数,但不提供基于函数的概述.Rprofmem应该能够做到这一点,但即使是最简单的函数调用的输出也会lm()提供超过500行的日志.我试图找出究竟Rprof("somefile.log",memory.profile=T)做了什么,但我不认为我真的明白了.

我能找到的最后一个是托马斯·拉姆利的这个消息,说道,我引述:

我还没有工具来总结输出.

这是在2006年也有一些不错摘要选择现在任何机会,主要是基于Rprofmem(),神秘的输出Rprof()memory.profile设置为TRUE或任何其他工具?

r memory-profiling r-faq

29
推荐指数
1
解决办法
2348
查看次数

标签 统计

r ×2

memory-profiling ×1

r-faq ×1