小编eco*_*mer的帖子

内存在简单的Rcpp函数中泄漏

我正在开发一个R中的包,我想转换为Rcpp以获得更好的性能.我是Rcpp的新手(和C++一样.)我的问题是,如果我用一组参数运行它多次,我编写的Rcpp函数工作正常,但是如果我尝试将它循环遍历许多参数组合,它会弹出内存泄漏并导致R会话中止.

这是R中的代码,它可以很好地适用于我抛出的任何测试:

raw_noise <- function(timesteps, mu, sigma, phi) {
   delta <- mu * (1 - phi)
   variance <- sigma^2 * (1 - phi^2)
   noise <- vector(mode = "double", length = timesteps)
   noise[1] <- c(rnorm(1, mu, sigma))
   for (i in (1:(timesteps - 1))) {
     noise[i + 1] <- delta + phi * noise[i] + rnorm(1, 0, sqrt(variance))
  }
   return(noise)
}
Run Code Online (Sandbox Code Playgroud)

这是Rcpp中的代码,使用三个Rcpp糖函数(pow,sqrt,rnorm):

NumericVector raw_noise(int timesteps, double mu, double sigma, double phi) {
  double delta = mu * (1 - phi); …
Run Code Online (Sandbox Code Playgroud)

c++ memory-leaks r rcpp

5
推荐指数
1
解决办法
499
查看次数

标签 统计

c++ ×1

memory-leaks ×1

r ×1

rcpp ×1