我目前正在尝试在4个不同版本中对bash脚本进行基准测试。每个人都做一个巨大的rsync
工作,通常需要很长时间才能完成。 bash脚本中有许多步骤,包括设置和拆除rsync到的环境。
但是,当我在bash脚本上运行strace时,我得到了令人惊讶的简短结果,这让我相信strace
实际上并没有跟踪等待rsync这样的命令的时间(可能会在子shell并且完全没有被rsync记录,或,它会间歇性地唤醒并睡眠另一段时间,其中strace不计算。这是一个片段:
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
99.98 12.972555 120116 108 52 wait4
0.01 0.000751 13 56 clone
0.00 0.000380 1 553 rt_sigprocmask
0.00 0.000303 2 197 85 stat
0.00 0.000274 2 134 read
0.00 0.000223 19 12 open
0.00 0.000190 48 4 getdents
0.00 0.000110 1 82 8 close
0.00 0.000110 1 153 rt_sigaction
0.00 0.000084 1 61 getegid
0.00 0.000074 4 19 write
那么我可以使用哪些类似于strace
的工具,OR,也许我在strace
中缺少某种类型的递归标记,以正确找出我的bash脚本在哪里等待? / p>
我想要的是:
% time command
------ --------
... rsync
... ls
任何建议将不胜感激。谢谢!