SASADA Koichi <ko1 / atdot.net> wrote:
> Recently I'm working around this topic.
> 
> (1) Life-time oriented, similar to Copying GC
> (2) CoW frindly (read only) memories
> 
> More detail about (2):
> The following figure shows the stacked memory usage (snapshot) collected
> by valgrind/massif, on discorse benchmark by @sam's help.
> http://www.atdot.net/fp_store/f.69bk1n/file.copipa-temp-image.png
> 
> Interestingly, 50MB is consumed by iseq (iseq.c, compile.c). Most of
> data are read only, so it can be more CoW frindly. Now, we mixes
> read-only data and r/w data such as inline cahce.
> 
> There are several ideas.  And I belive it is good topic to consider for
> Ruby 2.2.

ko1: any progress on this front?  I may use dlmalloc mspace API[1] to
make a special CoW-friendly heap for read-only parts of the iseq
structure (and probably other read-only data such as frozen pathnames).

And continue using regular malloc (e.g. jemalloc) for r/w heap.

[1] ftp://gee.cs.oswego.edu/pub/misc/malloc.c