4 ms·
Ok, so you analyze "regions". Then what? Modify the data structures to use some kind of efficient headerless representation? Then stop the world and rewrite
by PDoyle 9y ago
Ok, so you analyze "regions". Then what? Modify the data structures to use some kind of efficient headerless representation? Then stop the world and rewrite the whole heap if a new class gets loaded that violates an assumption? Or if existing code tries to use reflection to look at these things?
Nothing's impossible I guess, but this kind of global datastructure reshaping is definitely far beyond the state of the art in Java JIT compilers.
- naasking 9y agoCombining Region Inference and Garbage Collection, http://www.elsman.com/pdf/pldi2002.pdf http://www.elsman.com/pdf/pldi2002.pdf
- PDoyle 9y agoCool, thanks for the link. My mistake--I thought "regions" meant some sort of interprocedural "code regions". I suspect the state of the art in GC has moved in the last 15 years since this paper was written, and they might have trouble beating modern techniques, but that's speculation.
- naasking 9y agoIt's hard to beat regions in time overhead, since every operation is constant time; space overhead is where they suffer, and that's where GC enters the picture. Escape analysis is a degenerate region analysis, and many of the cases where it fails because it's not general enough would be handled quite well by regions.