On 19 November 2012 13:04, David Bruant <[email protected]> wrote:
I wish to point out a little thought on the topic of memory management. As
far as I know, all GC algorithms I'm aware of are runtime algorithms,
meaning that the primitives of these algorithms are objects and references
between objects. I have never heard of memory management system that
would take advantage of source code informations to not allocate memory
if it's proven to be unused after allocation (or allocate less if it's proven only
part will be used).
Is it a stupid idea? Too much effort? The conjonctions of 2 research areas
where people usually don't talk to one another?
Search for "region inference" or "region-based memory management". Was
a hot topic in the late 90s, but ultimately the cost/benefit ratio
turned out to be not so clear.
Also "compile-time garbage collection" or "compile-time memory
management". Then there is the whole area of "linear types" or
"uniqueness types", which allow for in-place updating (reusing
memory) without observable side-effects when absence of other
references can be proven statically. Perhaps also "fusion", which
avoids the allocation of intermediate structures, when it can be
proven statically that construction will be followed immediately
by deconstruction.
Claus
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss