Hi there, On 24 March 2016 at 21:37, roste...@abo.fi wrote: | I have used the example rinside_sample1.cpp as a basis for a short | routine to transmit data from C++ to R and to recover the results from R | to C++. On the face of it, everything works nicely both in our mainframe | (linux) computer at ÅAU and on the supercomputers at CSC IT Center of | Science (Helsinki). Before proceeding - not being an R expert myself - I | wanted to check the memory absorbance of the system. When checking the | program flow with Valgrind, the debugger signals that several blocks of | data are still reachable when exiting. This cannot be, | since multiple calls to the routine would quickly absorb the CPU.
valgrind is a very powerful tool. But when you embed R, which is an interpreted language with its own memory pool and management, you have to expect a few differences. Often, when I encounter such an example I try to first form a baseline. Something like creating a C++ executable instantiating RInside, and then 'doing nothing'. Maybe Sys.sleep(5) or something like that. Run it under valgrid, not how is want /may be/ unreachable or not freed /when you have not actually allocated anything/. Then do the same, but create a matrix or vector with, say, 10e3, then 10e4, then 10e5, ... elements and look at the output. | So, how do I free memory for example when allocating it through commands | such as: | Rcpp::NumericMatrix C_R=createMatrix(CATSM_INFO[0],cm,cn); | Rcpp::NumericVector v = R.parseEval(str); | string result(argv[1]); The nice thing about C++ is that it has constructors and destructors so /a priori/ you should not need to do anything. | How should the example rinside_sample1.cpp be modified to get this | straight and to avoid the risk of excessive memory absorbance in | multiple calls? Not to sound flippant, but we first need to really demonstrate that there actually is a leak. Hope this helps, Dirk -- http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org _______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel