Итак, у меня есть программа, которая импортирует функцию из C ++ с использованием Rcpp, и я хочу измерить ее использование памяти, в частности, ее пиковое использование памяти.Я пробовал Rprof, но кажется, что я не получаю достаточно хорошего разрешения, например, во многих моих выходных данных 0 выводится как mem.total в выходных данных, создаваемых summaryRprof ().Я также попробовал lineprof от Hadley Wickham, и его результаты кажутся противоречащими тому, что я получаю от Rprof.
Код с rprof:
Rprof(NULL)
Rprof(tf <- "rprof.log", memory.profiling=TRUE, interval = .0000025)
xz <- my.function(arg1, arg2)
Rprof(NULL)
out <- summaryRprof(tf, memory = c("both"))
Вывод из Rprof:
$by.self
[1] self.time self.pct total.time total.pct mem.total
<0 rows> (or 0-length row.names)
$by.total
total.time total.pct mem.total self.time self.pct
".Call" 0 100 0 0 100
"C++ function" 0 100 0 0 0
"R function" 0 100 0 0 0
$sample.interval
[1] 2e-06
$sampling.time
[1] 0.000332
Через большие интервалы возвращается out $ by.self, но все равно показывает ноль дляmem.total.
Код с lineprof:
source("my_function.r")
prof <- lineprof(my.function(arg1, arg2))
shine(prof)
Не уверен, как / если я могу загружать изображения в stackoverflow, но в основном я получаю блестящий интерфейс приложения, но всего одной строкой ".Вызов".
Извините, если это сбивает с толку, пожалуйста, спросите, не нужно ли мне что-то прояснить, и спасибо!