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

Jor*_*eys 29 r memory-profiling r-faq

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

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

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

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

Sym*_*xAU 6

profvis 看起来像这个问题的解决方案.

它生成一个交互式.html文件(使用htmlwidgets),显示代码的分析.

介绍的小插曲是在它的能力有很好的指导.

直接从介绍中获取,你会像这样使用它:

devtools::install_github("rstudio/profvis")
library(profvis)

# Generate data
times <- 4e5
cols <- 150
data <- as.data.frame(x = matrix(rnorm(times * cols, mean = 5), ncol = cols))
data <- cbind(id = paste0("g", seq_len(times)), data)
profvis({
    data1 <- data   # Store in another variable for this run

    # Get column means
    means <- apply(data1[, names(data1) != "id"], 2, mean)

    # Subtract mean from each column
    for (i in seq_along(means)) {
        data1[, names(data1) != "id"][, i] <- data1[, names(data1) != "id"][, i] - means[i]
    }
}, height = "400px")
Run Code Online (Sandbox Code Playgroud)

这使

在此输入图像描述