Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么FileInputStream这么慢?_Java_Linux_Inputstream - Fatal编程技术网

Java 为什么FileInputStream这么慢?

Java 为什么FileInputStream这么慢?,java,linux,inputstream,Java,Linux,Inputstream,我正在使用RHEL7 我正在开发一个应用程序,它应该从外部加载大量数据。我有ramdisk,它存储在RAM中,应该读得很快。我通过两种方式访问它: FileInputStream public static void main(String [] args){ try(InputStream fis = new FileInputStream(new File("/mnt/ramdisk/file")) BufferedReader r = new BufferedRe

我正在使用
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
             }
    }
    
  • 通读
    系统中的
    cat ramdisk/file | java-cp my.jar com.test.Main

    The same as 1, but the stream is System.in.
    
  • 第二条路要快得多。在我的机器上,工作速度比第一台快7倍


    有人能解释一下性能差异吗?我想了解它

    请分享你的代码。如果不查看您如何读取流(使用
    FileInputStream
    System.in
    ),我们无法告诉您出了什么问题。另外,如何使用
    FileInputStream
    读取内存中的内容?@反斜杠非常简单。只需要创建RAM磁盘。好的,第一点呢?你能分享你的代码吗?@BackSlash DoneSystem.in是抽象的。实际的实例是什么?请分享你的代码。如果不查看您如何读取流(使用
    FileInputStream
    System.in
    ),我们无法告诉您出了什么问题。另外,如何使用
    FileInputStream
    读取内存中的内容?@反斜杠非常简单。只需要创建RAM磁盘。好的,第一点呢?你能分享你的代码吗?@BackSlash DoneSystem.in是抽象的。实际情况如何?