java - 如何在每个目录存储超过 1000 个文件的情况下在磁盘上传播/散列多个文件?

标签 java performance hash

我需要生成大量由整数索引的文件。例如,假设 int i 的范围从 0 到 10000,生成的文件将是:f0.xml、f1.xml、... f10000.xml

但是,对于每个文件夹超过 1000 个文件,文件系统性能开始下降。

我想在 i 的值上使用“散列”或“展开”函数将文件存储在目录中。此功能将在单个目录中存储不超过 1000 个文件(或文件夹),但只会根据需要创建目录。

我的问题有什么想法或开源解决方案吗? 谢谢。

最佳答案

假设您按从 00000000 到 99999999 的数字生成文件名。您可以使用最后 3 位数字作为文件名,即您的目录看起来像 00000/000.xml 到 99999/999.xml

注意:除非您有 SSD,否则如果您在任何文件系统上有大量文件,您的性能将会降低。 HDD 上的典型文件访问时间约为 8 毫秒。

关于java - 如何在每个目录存储超过 1000 个文件的情况下在磁盘上传播/散列多个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12157836/

相关文章:

ruby-on-rails - 如何将新哈希插入到 ruby​​ 中的现有哈希中

c# - 字符串的持久哈希码

powershell - 高级 PowerShell 哈希函数

java - Oracle 日志充满 "java.lang.Throwable: No Error"?

java - 如何使用 Selenium 和 POI 从 Excel 的第一行迭代并尝试登录,然后再次迭代到第二行并尝试再次登录?

java - 指定字符串的扫描器不工作

performance - Control.Lens 是否有性能开销?

c++ - 如何正确计时 MPI 代码

java - 我对java编程入门中的第一个java lab的理解怎么样?我的代码正确吗?

google-chrome-extension - browserAction 打开缓慢,除非已在选项卡中打开