如何避免perf在管道中向stdout写入,强制其输出到文件?
解决perf record在管道环境下输出到stdout的问题
当在管道环境中使用perf record时,它会默认将采样数据输出到stdout(而非默认的perf.data文件),这就导致perf的采样数据混入了program1的输出流,干扰了program2的输入。
要强制perf将数据输出到文件,只需使用-o参数显式指定输出文件路径:
$ perf record -g -o perf.data ./program1 < feedback | ./program2 > feedback
执行完性能采样后,你可以通过以下命令分析数据:
$ perf report -i perf.data
这样既完成了对program1的性能监控,又不会破坏原有的管道数据流。
内容的提问来源于stack exchange,提问作者Sebastián Mestre
相关产品推荐
相关产品推荐

