我试图找出解决这个问题的最佳数据结构。我有一个索引文件(约 200000 条记录),其中包含帐号、唯一 ID、日期、pdf 表单名称、税码。根据从文件中读取的这些值,我必须分配一些操作(豁免、删除、征税等)。一旦分配了动作,我就可以调用实现该动作的必要方法。庞大的数据量是我无法决定的原因。有什么建议么?
问问题
44 次
1 回答
0
200,000 条记录根本不是一个庞大的数据量。
除非每条记录都必须引用另一条记录,否则您可以流式传输文件。读取一行,将其转换为对象,根据需要处理该对象,调用必要的操作,然后转到文件中的下一行。
使用此方法,您的数据将占用几乎零内存。
或者,您可以读取文件并在一个线程中每行创建一个对象,将每个对象放在一个队列中,然后使用一个或多个工作线程将对象从队列中取出并处理它们。这将以一些内存为代价更好地利用多核 CPU,具体取决于队列的大小。您当然可以设置最大队列大小以避免内存不足(当队列已满时文件读取器线程将暂停,直到它未满为止)。
于 2013-01-11T02:33:33.510 回答