[英]Having Trouble Debugging Possible Rcpp Memory Leak
我正在使用RcppEigen编写一个R包,称为RcppCoDA
我认为我的项目中某处可能存在内存泄漏,但我不确定。 不幸的是,我在运行Valgrind时遇到了麻烦,因为它似乎可能不支持OS X Mojave,并且我遇到了此处详述的错误。
我认为重现错误应该很容易:
library(RcppCoDA) # devtools::install_github("jsilve24/RcppCoDA")
library(microbenchmark)
d <- c(100,1000)
X <- matrix(abs(rnorm(prod(d))), d[1], d[2])
X <- clo(X)
# This runs fine
z <- RcppCoDA::alr(X, d=4)
# This for some reason takes forever to run... I think this might be a bug
for (i in 1:1000){
z <- RcppCoDA::alr(X, d=4)
}
# This causes RStudio to crash... or takes forever to run...
microbenchmark(
RcppCoDA::alr(X, d=4), times=10
)
我一遍又一遍地重读了代码,除非我只是以某种方式滥用了Rcpp,否则我看不到如何出现内存错误。不幸的是,由于我似乎无法让Valgrind 像这里概述的那样工作,调试失败。 我什至不确定我的代码或其他地方是否有错误。
非常感激任何的帮助!
感谢一些有用的评论,我得以使Valgrind在Docker映像中工作。
只是我的操作方法概述:
docker run rocker/rstudio
docker ps
docker exec -it <containerID> bash
R -d "valgrind --leak-check=full"
感谢您的帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.