Primitive Queue<any T> considerations

John Rose john.r.rose at oracle.com
Wed Nov 18 23:51:51 UTC 2015


On Nov 18, 2015, at 12:36 PM, Brian Goetz <brian.goetz at oracle.com> wrote:
> 
> Note that while values are in part about getting flatter data layouts, we do not plan to offer anything in the way of fine-grained layout control, such as allowing for explicit alignment requirements.  (Though other efforts, such as Project Panama, may have something to offer here).

Right; it's easier on the JVM to let it have its own choice on layouts.

For example, HotSpot usually repacks object fields so that refs
are all together, longs/doubles all together, ints/floats together,
etc., to minimize fragmentation and certain GC overheads.
Value types are likely to play such games also.

Open question:  How valuable would it be to "export" JVM-laid-out
values off heap?  My take:  Not a killer feature if done via bitwise
copies, since off-heap storage often needs an externally defined
layout.  But, perhaps we could define a mapping (or several
mappings) from value types to native types, and build copy
operations into Panama.  Simple types like complex<double>
should copy bitwise between heaps, even other types like
tuple<long, boolean, long> do not.  The main point is that
Panama expects to take data schemas from multiple
sources (not just C/C++), and that will play well with
value types.

— John


More information about the valhalla-dev mailing list