对读取输入文件的应用程序使用perf命令

时间:2015-06-08 16:56:12

标签: performance bash perf

某些应用程序通过<字符读取输入文件。例如,

./run_rog < input.txt

但是,以这种方式传递输入文件对perf命令无效。

perf stat -e instructions ./run_prog < input.txt
Failed opening logfd: Invalid argument

我该如何解决?

2 个答案:

答案 0 :(得分:1)

根据此source

  

在某些带有stdout的shell环境中运行perf-stat时   重定向有一个日志文件描述符设置失败:

     

Failed opening logfd: Invalid argument

显然,perf工具需要应用补丁来解决这个问题。

PS:试图通过以下方式重现您的问题:

$ > perf --version
perf version 2.6.32-431.11.2.el6.x86_64.debug

没问题:

$ > echo 'Test my perf' > input.txt
$ > perf stat -e instructions cat < input.txt
Test my perf

Performance counter stats for 'cat':

       580,283 instructions              #    0.00  insns per cycle

   0.003284129 seconds time elapsed

答案 1 :(得分:1)

希望无处可寻:这对我来说在openSUSE 13.2上有针对性能3.16.4。这两个命令

echo 'This is the input file' > input.txt
perf stat -e instructions /usr/bin/cat < input.txt

产生输出

This is the input file

 Performance counter stats for '/usr/bin/cat':

         1,181,541      instructions             

       0.000597226 seconds time elapsed