if you take each heap region and give them their own garbage collector and assign each thread/"proces"/fiber one, then you get another somewhat related approach for soft real time performance in GC'd languages (it's both for performance and safety & parallelism) like you have in Erlang/Elixir (dynamically typed & JITed/interpreted) or Nim (AOT, statically typed).
On Tuesday, May 12, 2015 at 12:03:20 AM UTC+2, Michael Louwrens wrote: > > I am starting to read "Region-Based Memory Management for a > Dynamically-Typed Language > <http://link.springer.com/content/pdf/10.1007/b102225.pdf#page=240>" it > proposes a second inference system, region inference. > > I will read it fully in the morning but just scanning through > their results they compare their regions to a GC. The GC library uses far > more heap in most cases, though the region based system needs optimisation > to be competitive. > > At one point they do state a combination of region based memory management > and GC would be interesting. > > For a prototype implementation, being 2x-3x slower while mostly using far > less memory is quite successful. The "Div" benchmark from Gabriel Scheme > benchmarks was the most impressive in terms of heap usage using 32.2KB vs. > 1219.6 for the GC'd version. In a memory constrained system this would be > an interesting thing to look at, the outliers are a bit of a concern > though. The "Tak" and "Destruct" benchmarks use almost 10x the amount of > heap the GC did. > > If anything it was an interesting read. The emulated region based > management sounds quite interesting in fact. Will go read up on the two > Steven Sagaert mentioned. Haven't read too much about G1 and nothing at all > on Azul Zing! >