有没有办法对bash脚本的性能进行基准测试?该脚本下载远程文件,然后调用多个命令行程序进行操作。我想知道(或尽可能多):
我能够对bash脚本进行编辑,以插入特定点(即应用程序调用之间)所需的任何基准命令。不确定一些“顶级”忍者是否可以解决这个问题。在man文件中找不到任何有用的东西(至少是有限的理解)。
将在OSX终端以及Ubuntu上运行基准测试(如果有任何问题)。
答案 0 :(得分:18)
strace -o trace -c -Ttt ./scrip
-c
用于跟踪cpu在特定呼叫上花费的时间。-Ttt
将告诉您每次系统调用运行时的微秒时间。-o
会将输出保存在文件“trace”中。答案 1 :(得分:4)
你应该能够通过多种方式实现这一目标。一种方法是对每个感兴趣的命令使用time
内置函数并捕获结果。您可能必须小心任何管道和重定向;
您也可以考虑捕获SIGCHLD,DEBUG,RETURN,ERR和EXIT信号并在其中放置时序信息,但您可能无法获得一些结果。
每个命令的CPU使用概念都不会给你任何有用的东西,所有命令都使用100%的cpu。内存使用是你可以提取的,但你应该看看
如果您想获得深入的流程统计信息,那么您可能希望使用strace ...有关详细信息,请参阅strace(1)手册页。我怀疑-Ttt,因为它在其他地方的建议是有用的,所有这些都告诉你系统调用时间,你想要其他进程跟踪信息。
您可能还想查看ltrace和dstat工具。
此处回答了类似的问题Linux benchmarking tools