RFR (M): 7163191 G1: introduce a "heap spanning table" abstraction
thomas.schatzl at oracle.com
Thu Aug 29 13:07:52 PDT 2013
can I have reviews for the following change?
It implements a generic class that allows mapping of subdivision of the
Java heap to single elements of an array. It provides a biased pointer
for fast access and some convenience functions.
Possible applications are mappings from heap addresses to HeapRegion
instances (the heap spanning table), the "fast CSet" tables to detect
whether a region is in the collection set and others.
This change implements the heap spanning table using this new "biased
array" instead of manual management/setup of the array.
John Cuthbertson already had a stab at it, polishing a change from Tony
Printezis. This change is mostly a rewrite, as internal discussion found
that moving some functionality of HeapRegionSeq, the watermark, into
that generic "biased array" was undesirable.
The original mail thread starts here:
The main change is in the new file G1BiasedArray.hpp, providing the new
functionality. Everything else is use of that new data structure (an
instance of G1BiasedMappedArray<HeapRegion*>) in the HeapRegionSeq
class, and resulting cleanup.
jprt, dacapo benchmarks
More information about the hotspot-gc-dev