OutputStream#write(int) が遅い

Servletのファイルダウンロード処理にOutputStream#write(int)を使っていたんですが、コレが非常に遅くて困った

ServletOutputStream outputStream = response.getOutputStream();
int int outputData = 0;
while ((outputData = inputStream.read()) != -1){
	outputStream.write(outputData);
}
outputStream.close();

OutputStream#write(data, off, length)を使う

Apacheの公開領域に同じファイルを置いてダウンロードするのと比較すると、テスト環境で10倍も処理時間がかかるのはやっぱりおかしい!
ということで、この部分を以下のようにバッファ処理を行うように修正

byte[] buf = new byte[4096];
while ((length = inputStream.read(buf)) != -1){
	outputStream.write(buf, 0, length);
}

すると処理速度が急激に速くなった!(Javaを介さず直接ダウンロードと同じぐらい!)
これ、普通にファイルストリーム出力の実装では全部こうしたほうがいいっぽいね
バッファ処理、侮れない…