32

Rprofmem()Rには、Rprof()オプション"memory.profiling=TRUE"や。などのメモリプロファイリング用のツールがいくつか ありますtracemem()。最後の1つはオブジェクトでのみ使用できるため、オブジェクトがコピーされた回数を追跡するのに役立ちますが、関数ごとの概要は示していません。Rprofmemそれができるはずですが、のような最も単純な関数呼び出しの出力でさえ、lm()500行を超えるログが得られます。私は実際に何をしているのかを理解しようとしましたRprof("somefile.log",memory.profile=T)が、実際には理解できていないと思います。

私が最後に見つけたのは、トーマス・ラムリーのこのメッセージでした。

出力を要約するためのツールはまだありません。

Rprofmem()これは2006年のことでした。セットTRUEの不思議な出力、Rprof()またはmemory.profile他のツールのいずれかに基づいて、いくつかの素晴らしい要約のオプションがある可能性はありますか?

4

2 に答える 2

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")

どちらが与える

ここに画像の説明を入力

于 2016-05-10T00:58:50.457 に答える
2

profrをチェックしてください-それはまさにあなたが探しているもののようです。

于 2011-03-07T03:13:02.467 に答える