[Patch] Optimizations for java.io.BufferedInputStream...

Bryce McKinlay mckinlay@redhat.com
Tue Mar 15 00:12:00 GMT 2005


David Daney wrote:

> The current skip(int) implementation of BufferedInputStream reads and 
> ignores data from the underlying stream.  We have a program that 
> creates a BufferedInputStream on an underlying FileInputStream where 
> the file is on a network mounted file system.  Often we skip large 
> portions of the streams.  This causes the entire contents of the files 
> to be transfered even when we only are interested in a small portion 
> near the end.
>
> This patch does two things:
>
> 1) skip now calls skip on the underlying stream when possible (i.e. 
> The internal buffer is empty and there is no mark).
>
> 2) Access the underlying stream directly instead of calling 
> supper.some_method().  This saves a method call for each operation.
>
> Tested on the HEAD on i686-pc-linux with make check in libjava with no 
> regresions.  No regresions in mauve in the 4.0 branch (HEAD not tested 
> in mauve due to ICE in mauve)
>
> 2005-03-14  David Daney  <ddaney@avtrex.com>
>
>     * java/io/BufferedInputStream.java (available): Use 'in' instead
>     of 'super' for underlying stream access.
>     (close): Ditto.
>     (read(byte[], int, int)): Ditto.
>     (refill): Ditto.
>     (skip): Call skip on underlying stream when possible.
>
> O.K to commit to HEAD?
>
> How about the 4.0 branch for good measure?
>

Yes, this looks good, thanks! I think this is OK for 4.0 too.

However: this patch needs to also go into classpath as 
BuffereredInputStream is merged (almost). It would be great if you could 
get yourself a classpath CVS account and check it in there too.

Regards

Bryce



More information about the Java-patches mailing list