我有一个程序在平面文件中写入大约8百万行数据。截至目前,该计划呼吁bufferedwriter.write每个记录的,我正打算大量写有以下策略以文件顺序写入vs批量写入
- 保持一个数据结构(我用数组)来保存记录的具体数量。
使用数组在文件中写入详细信息。这里是代码片段(数组是存储记录和阈值计数的数组的名称是编写过程开球)
if (array.length==thresholdCount) { writeBulk(array); } public void writeBulk(String[] inpArray) { for (String line:inpArray) { if (line!=null) { try { writer.write(line +"\n"); } catch (IOException e) { e.printStackTrace(); } } } }
但是我没有看到太多的性能提升。我想知道是否有办法确定最佳阈值计数? 我还打算进一步调整代码,以便将数组中的每个元素存储为n个记录的串联,然后调用批量方法。例如,长度为5000的数组实际上将包含50000条记录,从而数组中的每个索引都包含10条记录。然而在此之前,我需要专家意见。
为什么你会期望在所描述的场景下性能有所提高? – 2012-08-09 21:25:34