有没有办法 grep 只在一定时间内调用?
问问题
9107 次
1 回答
13
看起来在输出 ( -c
) 中有一个显示 CPU 时间的标志:
样本输出:
sysadm@brownie:~$ strace -c ./crypt_crack.py
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
84.38 0.000027 0 340 273 open
15.63 0.000005 0 67 rt_sigaction
0.00 0.000000 0 91 read
0.00 0.000000 0 67 close
0.00 0.000000 0 117 89 stat
0.00 0.000000 0 96 fstat
0.00 0.000000 0 1 lstat
0.00 0.000000 0 3 lseek
0.00 0.000000 0 64 mmap
0.00 0.000000 0 17 mprotect
0.00 0.000000 0 30 munmap
0.00 0.000000 0 8 brk
0.00 0.000000 0 1 rt_sigprocmask
0.00 0.000000 0 4 2 ioctl
0.00 0.000000 0 1 1 access
0.00 0.000000 0 1 execve
0.00 0.000000 0 1 uname
0.00 0.000000 0 2 fcntl
0.00 0.000000 0 4 getdents
0.00 0.000000 0 1 getcwd
0.00 0.000000 0 1 1 readlink
0.00 0.000000 0 1 getrlimit
0.00 0.000000 0 1 arch_prctl
0.00 0.000000 0 2 futex
0.00 0.000000 0 1 set_tid_address
0.00 0.000000 0 1 set_robust_list
------ ----------- ----------- --------- --------- ----------------
100.00 0.000032 923 366 total
sysadm@brownie:~$
使用-c
标志运行时, strace 似乎会保留所有输出,直到执行终止(优雅地或ctrl-c
)
并awk
寻找 CPU 时间 == 0.0:
sysadm@brownie:~$ strace -c ls -la 2>&1 | awk '{if ($2 == 0.0) print;}'
0.00 0.000000 0 23 read
0.00 0.000000 0 1 write
0.00 0.000000 0 34 12 open
0.00 0.000000 0 27 close
0.00 0.000000 0 34 stat
0.00 0.000000 0 23 fstat
0.00 0.000000 0 34 lstat
0.00 0.000000 0 1 lseek
0.00 0.000000 0 41 mmap
0.00 0.000000 0 12 munmap
0.00 0.000000 0 3 brk
0.00 0.000000 0 2 rt_sigaction
0.00 0.000000 0 1 rt_sigprocmask
0.00 0.000000 0 2 2 ioctl
0.00 0.000000 0 2 1 access
0.00 0.000000 0 4 socket
0.00 0.000000 0 4 4 connect
0.00 0.000000 0 1 execve
0.00 0.000000 0 1 uname
0.00 0.000000 0 13 fcntl
0.00 0.000000 0 2 getdents
0.00 0.000000 0 1 getrlimit
0.00 0.000000 0 1 arch_prctl
0.00 0.000000 0 67 67 getxattr
0.00 0.000000 0 1 futex
0.00 0.000000 0 1 set_tid_address
0.00 0.000000 0 1 clock_gettime
0.00 0.000000 0 1 set_robust_list
sysadm@brownie:~$
于 2011-01-25T16:18:27.530 回答