JDK-8042355 stream with sorted() causes downstream ops not to be lazy

Brian Goetz brian.goetz at oracle.com
Tue May 6 15:03:33 UTC 2014

This is an optimization that is theoretically possible (and was 
anticipated in the design), but in reality is likely to be so 
low-priority that it would be a really long time before it was worth 
putting engineering resources on this.  It would have to be an unordered 
stream, and we'd have to know that the downstream pipeline is 
short-circuiting.  (There is some back-propagation of characteristics 
for situations like this, but we have to be careful not to tax startup 
of common pipelines like filter-map-reduce just to support weird 
pipelines like this.)

On 5/6/2014 5:30 AM, Florian Weimer wrote:
> On 05/05/2014 03:16 PM, Paul Sandoz wrote:
>> Hi,
>>    https://bugs.openjdk.java.net/browse/JDK-8042355
>> http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8042355-sorted-short-circuit/webrev/
>> This is an optimization to ensure that sorted() in sequential
>> pipelines does not aggressively push all sorted elements downstream if
>> the pipeline is known to be short-circuiting.
> Would it be possible to use something like heap sort to avoid sorting
> the entire input stream if only the first few smallest items are needed?

More information about the core-libs-dev mailing list