单独的时间管道流程

Posted

技术标签:

【中文标题】单独的时间管道流程【英文标题】:Time piped processes individually 【发布时间】:2016-02-09 06:52:40 【问题描述】:

我有两个进程,第一个的输出通过管道传送到第二个。有什么方法可以对每个进程进行计时而不必序列化它们?

【问题讨论】:

您的 C++ 问题是什么?无论如何,我的操作系统允许我分别测量两个进程使用的 CPU 周期,也许这就是你需要的?你现在的研究结果是什么?最后,序列化这两个进程有什么问题? 您需要检测每个进程的代码,或者破解创建进程的外壳(或其他任何东西),从而测量时间。 当然,你可以使用time foo| bash -c "time bar"或类似的东西。 【参考方案1】:

如果我正确理解您对“管道”的使用,以下是一个相当通用的解决方案:

% mkfifo fifo 
% time foo > fifo &
% time bar < fifo &

您可能只能使用 sh 文件描述符技巧来安排此操作。

有没有什么方法可以给每个进程计时而不必 序列化它们

您当然意识到,既然您将它们捆绑在管道中,这本身可能会序列化它们?

【讨论】:

以上是关于单独的时间管道流程的主要内容,如果未能解决你的问题,请参考以下文章

字节输入流/输出流-----PipedInputStream/PipedOutputStream

使用 IPC C# 时如何有效地从管道流中读取

MVC5-1 ASP.NET的管道流

我可以将多个 ffmpeg 输出通过管道传输到不同的管道吗?

Python线程队列与多处理管道

Java IO PipedInputStream 和 PipedOutputStream