gpt4 book ai didi

python - 如何准确测量流经命名管道的比特率?

转载 作者:行者123 更新时间:2023-12-01 06:09:59 24 4
gpt4 key购买 nike

如果我有proc1 | proc2有没有一种方法可以准确测量流经管道的比特率,而不改变行为,就好像测量设备不存在一样?像T恤这样的东西可以吗?我想要 proc1 | tee proc2 > flow_measurement_thingproc1 | tee flow_measurement_thing > proc2 ?如果我正确理解管道,unix管道默认可以读取4096字节,如果接收器读取数据的速度不如数据输入的速度,它们可能会阻塞,所以我担心测量设备本身可能会导致“层流”流过如果我没有正确实现,管道就会变得“湍流”。

实际用例粘在 python 中,并使用来自操作系统的命名管道..这是一个大大简化的示例

import os, subprocess
os.mkfifo('pipe')
subprocess.Popen(['convert', '-i', 'pipe', '-o', 'somewhere_else'])
subprocess.Popen(['capture', '-o', 'pipe'])

为了简单起见,我们假设转换器不修改比特率,那么我希望能够验证 capture | convert | /dev/null正在以与 capture | /dev/null 相同的速率泵送比特

最佳答案

正如 Corey Goldberg 所说,您应该使用 pv。这是一个非常好的工具,可在大多数 *nix 系统上使用。你可以做这些事情:

capture | pv > /dev/null
capture | convert | pv > /dev/null

pv 将告诉您每种情况的吞吐量。

或者,如果capture的输出是确定性的,则只需使用计时器。

关于python - 如何准确测量流经命名管道的比特率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6380418/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com