代码之家  ›  专栏  ›  技术社区  ›  Panakotta00

文件系统中的命名管道不是很慢吗?

  •  0
  • Panakotta00  · 技术社区  · 7 年前

    把ipc的流数据写到文件系统中的一个文件中,等等写到您的(hdd o.ssd)中,难道不是没用吗?我的意思是,在内存中创建一个“缓冲”管道,这样我们就可以在驱动器上获得更高的性能,不是更好吗?但我是新来的工控机…或者它不是在写磁盘吗?但是,这是怎么可能的,系统写入文件系统而不写入磁盘?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Anon    7 年前

    文件系统中的命名管道不是很慢吗?

    它们不比任何其他类型的管道慢。

    在内存中创建一个“缓冲”管道不是更好吗?

    如果您没有内存限制,那么是的(请参阅下面的旧操作系统链接)。

    […]或者它不是在写磁盘吗?

    您的猜测是正确的——在许多现代操作系统上,进入命名管道的数据没有被写入磁盘;文件系统只是一个名称空间,其中包含一些信息,告诉您可以在哪里找到管道的末端。从Linux man page for pipe :

    注意:虽然fifos在文件系统中有一个路径名,但是fifos上的I/O不涉及底层设备上的操作(如果有)。

    older operating systems that buffer pipe data within a filesystem 但是考虑到您的问题的措辞(在这样的系统中,所有管道都通过文件系统,而不仅仅是命名管道),我怀疑这是一个切线。