RFR: JDK-8189611: JarFile versioned stream and real name support

Alan Bateman Alan.Bateman at oracle.com
Mon Nov 20 15:27:43 UTC 2017


On 17/11/2017 16:53, Xueming Shen wrote:
> :
>>
>> 3. Is ZipFile.entryNameStream really needed? Just asking because 
>> zf.stream().map(ZipEntry::getName) is possible today.
>>
> It's not a "must" for sure. The motivation behind this is that my 
> observation of most normal use scenario
> inside JDK is that only the "name" info is interested/collect/used. 
> The use pattern usually is
>
> zf.stream().map(ZipEntry::getName)
>
> same for the old Enumeration case, only the "name" is used and the 
> "entry" object is thrown away mostly.
>
> Other than the memory consumption (showed in those two snapshots), 
> it's also relatively costly to create
> the ZipEntry especially its "esxdostime" calculation. The jmh numbers 
> from a simple benchmark test
> suggests the entryNameStream is about 15-20% faster. So, the only 
> reason it's there is for better
> performance.
I can believe that it is faster but it does loose the ability to filter 
(it requires checking for a trailing "/" to filter out directories for 
example). I guess I don't object to adding this but it feels like it an 
opportunity beyond JDK-8189611.

-Alan


More information about the core-libs-dev mailing list