Primitive boolean array packing
shade at redhat.com
Sun Oct 7 08:01:47 UTC 2018
On 10/07/2018 12:05 AM, B. Blaser wrote:
> I didn't search much if such experiments have already been
> accomplished, but I'd like to take the temperature of this feature as
> completing the implementation represents a significant amount of work.
> Is this something that is worth exploring?
The most problematic part, in my mind, is that JMM requires the absence of word tearing for array
element accesses. See here: https://shipilev.net/blog/2014/jmm-pragmatics/#_part_ii_word_tearing
With densely packed boolean, you'd need to convert plain stores to locked/CAS-loops to support
this, I think, which raises all sorts of performance questions. Choosing between boolean and
BitSet is basically choosing between stricter/relaxed concurrency guarantees vs dense/sparse footprint.
More information about the jdk-dev