RFR 8193832: Performance of InputStream.readAllBytes() could be improved (original) (raw)
Remi Forax forax at univ-mlv.fr
Tue Dec 19 21:35:18 UTC 2017
- Previous message: RFR 8193832: Performance of InputStream.readAllBytes() could be improved
- Next message: RFR 8193832: Performance of InputStream.readAllBytes() could be improved
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
----- Mail original -----
De: "Paul Sandoz" <paul.sandoz at oracle.com> À: "Brian Burkhalter" <brian.burkhalter at oracle.com> Cc: "core-libs-dev" <core-libs-dev at openjdk.java.net> Envoyé: Mardi 19 Décembre 2017 21:52:03 Objet: Re: RFR 8193832: Performance of InputStream.readAllBytes() could be improved
Hi,
For the case of reading 2^N bytes i believe you can avoid doing a last copy by checking if “n < 0" within the “nread > 0” block when “nread == DEAFULTBUFFERSIZE”. That might close the perf gap for smaller cases. You can also move "nread = 0” to the same block e.g.: var copy = (n < 0 && nread == DEAFULTBUFFERSIZE) ? buf : Arrays.copyOf(buf, nread); list.add(copy) nread = 0;
262 byte[] output = new byte[total]; 263 int offset = 0; 264 int numCached = list.size(); 265 for (int i = 0; i < numCached; i++) { 266 byte[] b = list.get(i); 267 System.arraycopy(b, 0, output, offset, b.length); 268 offset += b.length; 269 } You can simplify to: var result = new byte[total]; int offset = 0; for (buf : list) { System.arraycopy(buf, 0, result, offset, buf.length); offset += buf.length; } s/list/bufs and then you can use var for the declarations at the start of the method. Paul.
About using var, IMO var declaration makes usually the code more readable apart if you mix var declaration and classical declaration and if you call a method that has several overloads.
Is there a usage guide somewhere ?
Rémi
- Previous message: RFR 8193832: Performance of InputStream.readAllBytes() could be improved
- Next message: RFR 8193832: Performance of InputStream.readAllBytes() could be improved
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]