スプーリング処理
リッピングしたら、データをPipedOutputStreamへ書き込み、それに関連づけしてあるPipedInputStreamを別のスレッドで読む。
予定では、今までとほぼ同じ時間で処理が終わるはず。
だが、結果は、ものすごく遅かった。なぜ?
調べた結果、PipedInputStreamのバッファサイズが1,024バイトしかないことが判明。しかもサイズは変えられない。
セクタは2,000バイト以上あるからバッファーはデータの半分しかない。
ほとんど、読み込み側の処理が終わるまで待ってるのといっしょだ。
しかも、読み込みは1バイトづつのループで読んでるに違いない。
そりゃ、時間かかるだろうよ。
うーん、スプールも作らないとダメだな。バッファーサイズを変更できるやつ。
しかも、読み込み側は、まとめて読めるやつ。
これができれば、少しは速くなるだろう。
予定では、今までとほぼ同じ時間で処理が終わるはず。
だが、結果は、ものすごく遅かった。なぜ?
調べた結果、PipedInputStreamのバッファサイズが1,024バイトしかないことが判明。しかもサイズは変えられない。
セクタは2,000バイト以上あるからバッファーはデータの半分しかない。
ほとんど、読み込み側の処理が終わるまで待ってるのといっしょだ。
しかも、読み込みは1バイトづつのループで読んでるに違いない。
そりゃ、時間かかるだろうよ。
うーん、スプールも作らないとダメだな。バッファーサイズを変更できるやつ。
しかも、読み込み側は、まとめて読めるやつ。
これができれば、少しは速くなるだろう。
Comments