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或任何其他工具?
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)
这使