[英]reader vs buffered reader
这将是对呼叫的性能差异read(char[] cbuf)
之间FileReader
和BufferedReader
假定缓冲区的大小BufferedReader
是相同cbuf
。
我知道,每次进行本机调用来读取每个字符时,对FileReader
进行简单的read()
调用的速度都会变慢。
在FileReader
上的read(char[] cbuf)
将仅通过一个本地调用read(char[] cbuf)
cbuf
大小,这与BufferedReader
调用类似。
如果在FileReader
和BufferedReader
上使用read(char[] cbuf)
方法,那么性能会有任何差异。
FileReader上的read(char [] cbuf)将仅通过一个本地调用读取char的cbuf大小,这与BufferedReader的调用类似。
那是不对的。 没有读取到Java char[]
数组的本机调用。 一的FileReader是一个真正的InputStreamReader
铺在FileInputStream.
InputStreamReader
运行8k内部缓冲区。 因此,一次最多可读取8k文件。
如果在
FileReader
和BufferedReader
上使用read(char [] cbuf)方法,那么性能会有任何差异。
您将看到以下观点:由于双缓冲, BufferedReader
读入缓冲区的速度较慢,但它们是不正确的。 BufferedReader
会检测到这种情况,并在可能的情况下直接进行读取。
简而言之,您不会发现任何区别。
该计划:BufferedReader占用一些空间,因此典型用途可以消耗更少的时间。
但是要对其进行衡量,因为性能结果取决于以下方面:
此外,性能结果的重要性将取决于应用程序的功能要求。
您没有提到维护软件的问题,但通常值得考虑的是,软件是生命周期成本的主要部分。 维护使用标准库的代码比重新发明相同功能的代码容易。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.