【发布时间】:2011-11-30 07:09:14
【问题描述】:
我在处理大文件和内存限制方面的经验非常少。 请注意,我使用 Java 作为编程语言。
我必须找到文件大小为 15GB 的记录,然后将结果写入另一个文件。基本上它是一个搜索范围功能的实现。我的目标是将我范围内的记录写入结果文件,并用换行符分隔。也就是说,每条记录都应该放在单独的行上。此类查询的数量在 400-1000 左右。因此,每个查询都会写入许多位于其范围内的记录。
那么下面哪个是更快的方法?
1- 一旦我开始获取我的查询范围记录,我就开始将它们连续写入文件?
2- 我将我的记录存储在某个字符串中,并为找到的每条记录附加到字符串中,然后最后写入?
3- 使用字符串生成器连接每个查询的结果,然后在最后写入文件?但是字符串生成器不支持换行。
4- 制作我自己的数据结构?
5- 创建一个记录数组列表,然后在最后对其进行迭代以写入文件?
请告诉我哪种方法在 IO 和 MM 方面最快。
【问题讨论】:
-
好吧,我们不能使用数据库,因为它是一个用 Java 构建数据库的项目,所以我们不能使用任何提供任何索引或数据库相关功能的库。抱歉,未标记已回答问题是什么意思?你是在说我在 Stack Overflow 上问的除此之外的问题吗?谢谢!
-
不是说 StringBuilder 是最好的解决方案,但我几乎肯定它支持换行符
标签: java performance data-structures io main-memory-database