strace'ing / profiling bash脚本

时间:2018-05-15 20:34:35

标签: bash profiling rsync strace

我目前正在尝试在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

任何建议将不胜感激。谢谢!

0 个答案:

没有答案