我正在使用RHEL7
。
我正在处理一个应该从外部加载大量数据的应用程序。我有ramdisk
存储在RAM
内,应该非常快速地读取。我以两种方式访问它:
FileInputStream
public static void main(String [] args){
try(InputStream fis = new FileInputStream(new File("/mnt/ramdisk/file"))
BufferedReader r = new BufferedReader(new InputStreamReader(fis))){
while(//till the end of stream
){
byte[] buffer = new byte[_some_size_];
r.read(buffer);
//Do something useful
}
}
通读System.in
。 cat ramdisk/file | java -cp my.jar com.test.Main
The same as 1, but the stream is System.in.
第二种方式更快。在我的机器上工作的速度比第一个快7倍。
有人可以解释性能差异吗?我想了解它。