Как я могу отслеживать использование памяти для функции R, которая использует Rcpp? - PullRequest
0 голосов
/ 01 апреля 2019

Итак, у меня есть программа, которая импортирует функцию из 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, но в основном я получаю блестящий интерфейс приложения, но всего одной строкой ".Вызов".

Извините, если это сбивает с толку, пожалуйста, спросите, не нужно ли мне что-то прояснить, и спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...