2015-02-26 2 views
3

Я хочу использовать Callgrind для поиска узких мест в некотором сложном коде Rcpp. Поскольку я не мог заставить его работать, я решил написать простой R-файл, чтобы убедиться, что он делает то, что должен.Запуск Callgrind на простой файл R

Однако я все еще не могу заставить его работать.

Моя простая функция:

args <- commandArgs(trailingOnly=T) 
test_callgrind <- function(args) { 
    x <- args[1] 
    a <- 0 
    for (i in 1:x) { 
    a <- i 
    } 
    return(a) 
} 
a <- test_callgrind(args) 
save(a, file="a.rdata") 

Я тогда тип:

valgrind --tool=callgrind Rscript filename.R 1000 

Это, кажется, прекрасно работать, и производит callgrind.out.XYZ, как documentation говорит, что это должно быть.

Я введите:

callgrind_annotate callgrind.out.XYZ 

и получить следующее:

Use of uninitialized value $events in string ne at /usr/bin/callgrind_annotate line 446. 
Line 0: missing events line 

Это точно такая же ошибка, как я с моим более сложным кодом, так что-то помимо функции виноват ,

Есть ли у кого-нибудь идеи, что я делаю неправильно? Благодарю.

ответ

2

Может быть немного слишком поздно, но что, если вы вместо того, чтобы использовать

R -d "valgrind --tool=callgrind" -f filename.R 
Смежные вопросы