使用OpenCSV对FileOutputStream的性能影响



我们正在使用opencsv

(http://opencsv.sourceforge.net/apidocs/au/au/com/com/bytecode/opencsv/csvwriter.html)

用XML内容的文件编写报告。

有两种方法可以解决 ->

i)使用fileOutputstream

写作
FileOutputStream fos = new FileOutputStream(file);
OutputStreamWriter osr= new OutputStreamWriter(fos);
writer = new CSVWriter(osr);

ii)使用BufferedWriter

写作
BufferedWriter out = new BufferedWriter(new FileWriter(file));
writer = new CSVWriter(out);

有人知道该报告的撰写表现如何通过选择一个选项而不是另一种选择来影响吗?

对我的理解,只要它可以使用它可以使用的流。

delta (差异)将是从文件创建输出流之前的步骤。

使用 utputStreamWriter vors BufferedWriter 有什么性能影响?

使用Google Caliper运行一些基准后,看来BufferedWriter选项是最快的(但实际上没有太大的区别,所以我只使用您的选项舒适)。

如何解释结果:

  • FileOutputStreamWriter方案与选项i

  • 相对应
  • BufferedWriter方案与选项II

  • 相对应
  • FileWriter方案是我添加的,它只是使用普通的旧文件作者。

每个基准的运行3次:写1000、10,000和100,000行。

测试是在Linux Mint上进行的,i5-2500k(1.6GHz)CPU,8GB RAM,带有Oracle JDK7(写入SATA Green HDD)。结果会随着不同的设置而有所不同,但这应该适合比较目的。

  rows              benchmark     ms linear runtime
  1000 FileOutputStreamWriter   6.10 =
  1000         BufferedWriter   5.89 =
  1000             FileWriter   5.96 =
 10000 FileOutputStreamWriter  50.55 ==
 10000         BufferedWriter  50.71 ==
 10000             FileWriter  51.64 ==
100000 FileOutputStreamWriter 525.13 =============================
100000         BufferedWriter 505.05 ============================
100000             FileWriter 535.20 ==============================

fyi opencsv包装Writer您在PrintWriter中给予它。

相关内容

  • 没有找到相关文章

最新更新