Java:快速获取数据:存储在内存中而不是从文件中读取
我正在写一个数据表生成器工具,但有一些性能问题-我需要关心RAM的使用情况和生成时间。这确实是我计划中的一个关键 1) I需要将最终数据存储在单个文件中(一个文件=一个表,稍后生成所有文件时加载),如: 我可以有很多列,甚至上百万行。所有值都是正确的 2) 现在,我需要使用以前生成的一个表中的值来为下一个表生成单个值。我的程序还可以将单个列保存到临时文件中(以便将来读取),如: 现在,主要的问题是,我需要随机地“读取”新值,甚至百万次,这与行计数器是一样的 如何有效地做到这一点?使用哪些工具?我有两个选择:Java:快速获取数据:存储在内存中而不是从文件中读取,java,performance,file-writing,bigdata,Java,Performance,File Writing,Bigdata,我正在写一个数据表生成器工具,但有一些性能问题-我需要关心RAM的使用情况和生成时间。这确实是我计划中的一个关键 1) I需要将最终数据存储在单个文件中(一个文件=一个表,稍后生成所有文件时加载),如: 我可以有很多列,甚至上百万行。所有值都是正确的 2) 现在,我需要使用以前生成的一个表中的值来为下一个表生成单个值。我的程序还可以将单个列保存到临时文件中(以便将来读取),如: 现在,主要的问题是,我需要随机地“读取”新值,甚至百万次,这与行计数器是一样的 如何有效地做到这一点?使用哪些工具?我
- 将临时文件中的所有第二列“可用值”存储在某个数组/数组列表中,并用于例如.get(int index)方法和返回值
- 从该文件中读取特定行并返回值
您可以使用这样的库,它允许您通过一个键随机读取文件中的任何记录。内存中的DB,因为您需要随机读取?磁盘读/写总是比内存读/写慢…我知道读/写要慢,但我也需要关心RAM。如果我在array/arraylist中存储了数以百万计的值,那么看看使用情况……要么是速度,要么是RAM使用率低。选择一个,而不是两个。我不会向你推荐一个具体的解决方案。我建议您尝试不同的可能解决方案,使用“现实”数据对它们进行基准测试,然后做出决定。没有“一刀切”的解决方案。为什么需要将表存储在文件中。您是否考虑过使用嵌入式数据库(如H2)?内存中的数据库,因为您需要随机读取?磁盘读/写总是比内存读/写慢…我知道读/写要慢,但我也需要关心RAM。如果我在array/arraylist中存储了数以百万计的值,那么看看使用情况……要么是速度,要么是RAM使用率低。选择一个,而不是两个。我不会向你推荐一个具体的解决方案。我建议您尝试不同的可能解决方案,使用“现实”数据对它们进行基准测试,然后做出决定。没有“一刀切”的解决方案。为什么需要将表存储在文件中。您是否考虑过使用嵌入式数据库(如H2)?
111|aaaa|bbba
112|aaab|bbbb
113|aaac|bbbc
114|aaad|bbbd...
aaaa
aaab
aaac
aaad...