Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:快速获取数据:存储在内存中而不是从文件中读取_Java_Performance_File Writing_Bigdata - Fatal编程技术网

Java:快速获取数据:存储在内存中而不是从文件中读取

Java:快速获取数据:存储在内存中而不是从文件中读取,java,performance,file-writing,bigdata,Java,Performance,File Writing,Bigdata,我正在写一个数据表生成器工具,但有一些性能问题-我需要关心RAM的使用情况和生成时间。这确实是我计划中的一个关键 1) I需要将最终数据存储在单个文件中(一个文件=一个表,稍后生成所有文件时加载),如: 我可以有很多列,甚至上百万行。所有值都是正确的 2) 现在,我需要使用以前生成的一个表中的值来为下一个表生成单个值。我的程序还可以将单个列保存到临时文件中(以便将来读取),如: 现在,主要的问题是,我需要随机地“读取”新值,甚至百万次,这与行计数器是一样的 如何有效地做到这一点?使用哪些工具?我

我正在写一个数据表生成器工具,但有一些性能问题-我需要关心RAM的使用情况和生成时间。这确实是我计划中的一个关键

1) I需要将最终数据存储在单个文件中(一个文件=一个表,稍后生成所有文件时加载),如:

我可以有很多列,甚至上百万行。所有值都是正确的

2) 现在,我需要使用以前生成的一个表中的值来为下一个表生成单个值。我的程序还可以将单个列保存到临时文件中(以便将来读取),如:

现在,主要的问题是,我需要随机地“读取”新值,甚至百万次,这与行计数器是一样的

如何有效地做到这一点?使用哪些工具?我有两个选择:

  • 将临时文件中的所有第二列“可用值”存储在某个数组/数组列表中,并用于例如.get(int index)方法和返回值
  • 从该文件中读取特定行并返回值
谢谢你的帮助

如何有效地做到这一点

要随机读取文件,需要知道每条记录的偏移量。我将存储这是一个二进制文件,每行的开头偏移量为4字节或8字节

您可以使用类似的库,它允许您通过一个键随机读取文件中的任何记录

如何有效地做到这一点

要随机读取文件,需要知道每条记录的偏移量。我将存储这是一个二进制文件,每行的开头偏移量为4字节或8字节


您可以使用这样的库,它允许您通过一个键随机读取文件中的任何记录。

内存中的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...