From: Eric Wong Date: 2014-08-20T19:46:46+00:00 Subject: [ruby-core:64481] Re: [ruby-trunk - Feature #9113][Open] Ship Ruby for Linux with jemalloc out-of-the-box SASADA Koichi 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