对Linux Bash脚本进行基准测试

mon*_*ndo 8 linux bash benchmarking

有没有办法对bash脚本的性能进行基准测试?该脚本下载远程文件,然后调用多个命令行程序进行操作.我想知道(或尽可能多):

  • 总时间
    • 下载时间
    • 花在每个命令上的时间称为
    • - = [我认为这些可以包含在"时间"通话中吗?] = -
  • 平均下载速度
    • 使用wget
  • 使用的总内存
  • 总CPU使用率
    • 每个命令调用的CPU使用率

我能够对bash脚本进行编辑,以插入特定点(即应用程序调用之间)所需的任何基准命令.不确定一些"顶级"忍者是否可以解决这个问题.在man文件中找不到任何有用的东西(至少是有限的理解).

将在OSX终端以及Ubuntu上运行基准测试(如果有任何问题).

小智 18

strace -o trace -c -Ttt ./scrip
Run Code Online (Sandbox Code Playgroud)
  1. -c 是跟踪cpu在特定呼叫上花费的时间.
  2. -Ttt 会告诉你每次系统调用运行时的微秒时间.
  3. -o 将输出保存在文件"trace"中.


Ahm*_*sud 5

您应该能够通过多种方式实现这一目标。一种方法是对每个感兴趣的命令使用time内置函数并捕获结果。您可能必须小心任何管道和重定向;

您还可以考虑捕获 SIGCHLD、DEBUG、RETURN、ERR 和 EXIT 信号并将计时信息放入其中,但您可能不会得到一些结果。

每个命令的 CPU 使用情况的概念不会给您任何有用的东西,所有命令都使用 100% 的 cpu。内存使用情况是您可以提取的内容,但您应该查看

如果您想获得深层进程统计信息,那么您需要使用 strace...有关详细信息,请参阅 strace(1) 手册页。我怀疑 -Ttt 正如其他地方所建议的那样有用,它告诉您是系统调用时间并且您需要其他进程跟踪信息。

您可能还想查看 ltrace 和 dstat 工具。

Linux 基准测试工具回答了类似的问题