我注意到在两个应用程序中生成文件哈希,一个用 Java 编写,另一个用 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();
有什么提示吗?
谢谢。