hg: lambda/lambda/jdk: Replacement for VariableStreamBuilder that doesn't do re-allocs. Better chunk sizing will come in future updates.
Brian Goetz
brian.goetz at oracle.com
Thu Oct 4 19:33:02 PDT 2012
Glad to see SB getting cleaned up.
Code review comments:
- The warning in begin() should probably be an ISE, since the
semantics of begin(n) are that you are committing to provide n elements.
Similar for toArray -- I think you should throw ISE if the size is
wrong.
- Initial sizes in spined SB seem large.
- In SpinedSB, probably not worth keeping global size/capacity up to
date; instead, just the current index into chunks and the current index
into the current chunk are enough to keep track of (a) where to write to
next, (b) when to switch chunks, and (c) when to reallocate the chunks
array.
- Do we still need the junky old VariableStreamBuilder?
- Need SBs for each stream shape. Should put factories on the Shape
(shape.makeFixedStreamBuilder(n), shape.makeStreamBuilder(), etc.) For
KV streams, probably best to allocate a pair of arrays, one for keys,
one for values.
On 10/4/2012 9:26 PM, mike.duigou at oracle.com wrote:
> Changeset: f673f3d4682f
> Author: mduigou
> Date: 2012-10-04 18:26 -0700
> URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f673f3d4682f
>
> Replacement for VariableStreamBuilder that doesn't do re-allocs. Better chunk sizing will come in future updates.
>
> ! src/share/classes/java/util/streams/StreamBuilders.java
> ! test-ng/tests/org/openjdk/tests/java/util/streams/ops/StreamOpTestCase.java
>
>
More information about the lambda-dev
mailing list