gpt4 book ai didi

bash - 如何监控每行 stdout 是 Bash 中最后一行输出的时间以进行基准测试?

转载 作者:行者123 更新时间:2023-11-29 09:39:05 25 4
gpt4 key购买 nike

例如,假设我有脚本:

(echo a; sleep 1; echo b; sleep 3; echo c; sleep 2)

哪些输出:

a
b
c

当运行该脚本时,可能通过管道,我想获得如下内容:

1.00 a
3.00 b
2.00 c

因为行 a 是 stdout 的最后一行 1.00 秒,然后被 b 替换为最后一行。

我不想修改正在运行的程序,在我的实际用例中,stdout 将由我不想修改的复杂可执行文件生成,例如QEMU 引导 Linux 内核。

这将允许我对正在运行的程序进行快速而粗略的分析,以确定哪个段花费的时间最长。

最佳答案

如果您对几秒钟的分辨率感到满意,您可以使用这个单行代码:

t=$SECONDS; (echo a; sleep 1; echo b; sleep 3; echo c; sleep 2) | while read line; do echo $((SECONDS - t)) $line; t=$SECONDS; done

如果您可以安装 node.js,这正是 gnomon做:

enter image description here

关于bash - 如何监控每行 stdout 是 Bash 中最后一行输出的时间以进行基准测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49797246/

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