Friday, June 1, 2012

Optimizing IO Performance

For better IO performance when using Input / Output streams for large files:
  • Don't use the API that reads one byte at a time.
  • Read a byte[] at a time.
  • Use BufferedInputStream / BufferedOutputStream. Set large buffers if necessary.
Example:

int bufferSize = 32768;
byte[] buf = new byte[bufferSize];
int bytesRead = 0;
while((bytesRead = bufferedInputStream.read(buf)) != -1) {
    if(bytesRead < bufferSize) {
        buf = Arrays.copyOfRange(buf, 0, bytesRead);
    }
    // Do something with buf
}

No comments:

Post a Comment