[Rd] Does R ever move objecsts in memory?
murdoch.duncan at gmail.com
Mon Mar 17 01:31:01 CET 2014
On 14-03-16 7:51 PM, Ross Boylan wrote:
> R objects can disappear if they are garbage collected; can they move,
> i.e., change their location in memory?
> I don't see any indication this might happen in "Writing R Extensions"
> or "R Internals". But I'd like to be sure.
> Context: Rmpi serializes objects in raw vectors for transmission by
> mpi. Some send operations (isend) return before transmission is
> complete and so need the bits to remain untouched until transmission
> completes. If a preserve a reference to the raw vector in R code that
> will prevent it from being garbage collected, but if it gets moved
> that would invalidate the transfer.
> I was just using the blocking sends to avoid this problem, but the
> result is significant delays.
If the object is unchanged, it won't move. If you modify it (e.g.
assign a new value to one element of a vector), it may be duplicated and
the result after the change will be at a new location.
More information about the R-devel