ファイルのハッシュを生成する 2 つのアプリケーション (1 つは Java で作成され、もう 1 つは C# で作成) で、DVD から読み取るときのパフォーマンスがひどいことに気付きました。Windows XP SP3 を使用しています。ノイズから、一連のブロックを読み取った後もドライブがスピンダウンし続け、読み取りの間に数秒の一時停止が発生することに気付きました。
奇妙なことに、エクスプローラーを使用してファイルをハード ドライブにコピーしたり、md5sum (C で記述されたユーティリティ) を使用したりすると、これは発生しません。また。同じハードウェアを使用して Linux で実行すると、Java アプリケーションは正常に動作します。
private static final byte[] m_buf = new byte[1048576*3];
...
//Using a BufferedInputStream makes no difference
InputStream in = new FileInputStream(file);
while((last_read = in.read(m_buf)) != -1){
update_hash(m_buf, 0, last_read);
}
in.close();
ヒントはありますか?
ありがとう。