我正在尝试优化基于Web的应用程序,该应用程序对流进行了大量编写。
代码是这样的-

 StringWriter stringWriter = new StringWriter(1024);
 PrintWriter printWriter = new PrintWriter(stringWriter);

然后,该打印机将用于在多个位置执行许多写操作,例如-
 printWriter.write("set interface ethernet0 zone Trust");

我想通过将printwriter包裹在bufferedwriter周围来优化几个写操作。所以我打算如下更改line1和line2。请让我知道下面的方法是否正确-
StringWriter stringWriter = new StringWriter(1024);
// go for bufferedwriter instead of printwriter.
BufferedWriter bufWriter = new BufferedWriter(stringWriter, 8*1024);

另外,我认为现在我可以像在-中那样直接替换write方法了。
printWriter.write("set interface ethernet0 zone Trust");

替换为
bufWriter.write("set interface ethernet0 zone Trust");

请让我知道这是否正确,还是我需要使用BufferedWriter的任何重载方法来充分利用BufferedWriter。

谢谢,
开发人员

最佳答案

添加BufferedWriter只会为每个写入的字符添加一个附加的复制操作。您应该改为更改StringWriter的初始大小,初始大小较大意味着增长较少,以后也不会复制。

StringWriter本身包含一个用于字符数据的不断增长的Buffer,使用BufferedWriter在其顶部添加一个额外的缓冲区不会导致速度提高。从给定的代码开始,StringWriter对象本身的较大初始大小可能会有所帮助。

07-24 09:45
查看更多