I have a situation that I can not predict the final result's dimension. In C++, I believe that the class valarray could preallocate some memory than it is actually needed (maybe 2 times more). The runtime for a C++ equivalent (using append) to the R code would still be C*n, where C is a constant and n is the length of the vector. However, if it just allocate enough memory, the run time will be C*n^2.
Based on your reply, I suspect that R doesn't allocate some memory than it is currently needed, right? On Fri, Dec 11, 2009 at 11:22 AM, Henrik Bengtsson <h...@stat.berkeley.edu> wrote: > Related... > > Rule of thumb: > Pre-allocate your object of the *correct* data type, if you know the > final dimensions. > > /Henrik > > On Thu, Dec 10, 2009 at 8:26 AM, Peng Yu <pengyu...@gmail.com> wrote: >> I'm wondering where I can find the detailed descriptions on R memory >> management. Understanding this could help me understand the runtime of >> R program. For example, depending on how memory is allocated (either >> allocate a chuck of memory that is more than necessary for the current >> use, or allocate the memory that is just enough for the current use), >> the performance of the following program could be very different. >> Could somebody let me know some good references? >> >> unsorted_index=NULL >> for(i in 1:100) { >> unsorted_index=c(unsorted_index, i) >> } >> unsorted_index >> >> ______________________________________________ >> R-help@r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html >> and provide commented, minimal, self-contained, reproducible code. >> > ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.