Pau*_*aul 11 shell-script time profiling
我有几个在 shell 脚本中执行的程序:
./myprogram1
./myprogram2
...
Run Code Online (Sandbox Code Playgroud)
我知道我可以通过编辑源代码来分析每个单独的程序,但我想知道是否有一种方法可以通过分析脚本本身来测量执行的总时间。有没有可以用于此目的的计时器程序?如果是这样,它的测量精度如何?
小智 10
首先按照 Jon Lin 的建议使用时间:
$ time ls test
test
real 0m0.004s
user 0m0.002s
sys 0m0.002s
Run Code Online (Sandbox Code Playgroud)
你不会说你的脚本在什么 unix 上运行,而是说 linux 上的 strace,Solaris/AIX 上的 truss,我认为 hp-ux 上的 tusc 可以让你了解很多关于进程正在做什么的信息。我喜欢 strace 的 -c 选项来获得一个很好的总结:
]$ strace -c ls
test
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
89.19 0.000998 998 1 execve
10.81 0.000121 121 1 write
0.00 0.000000 0 12 read
0.00 0.000000 0 93 79 open
0.00 0.000000 0 16 close
0.00 0.000000 0 2 1 access
0.00 0.000000 0 3 brk
0.00 0.000000 0 2 ioctl
0.00 0.000000 0 4 munmap
0.00 0.000000 0 1 uname
0.00 0.000000 0 6 mprotect
0.00 0.000000 0 2 rt_sigaction
0.00 0.000000 0 1 rt_sigprocmask
0.00 0.000000 0 1 getrlimit
0.00 0.000000 0 30 mmap2
0.00 0.000000 0 8 7 stat64
0.00 0.000000 0 13 fstat64
0.00 0.000000 0 2 getdents64
0.00 0.000000 0 1 fcntl64
0.00 0.000000 0 1 futex
0.00 0.000000 0 1 set_thread_area
0.00 0.000000 0 1 set_tid_address
0.00 0.000000 0 1 set_robust_list
0.00 0.000000 0 1 socket
0.00 0.000000 0 1 1 connect
------ ----------- ----------- --------- --------- ----------------
100.00 0.001119 205 88 total
Run Code Online (Sandbox Code Playgroud)
另请注意,附加这些跟踪类型的程序可能会稍微减慢程序的速度。
归档时间: |
|
查看次数: |
9413 次 |
最近记录: |