6
C'è un modo per grep per le chiamate solo per un certo periodo di tempo?Come utilizzare strace per mostrare solo le chiamate che richiedono molto tempo?
C'è un modo per grep per le chiamate solo per un certo periodo di tempo?Come utilizzare strace per mostrare solo le chiamate che richiedono molto tempo?
Sembra che ci sia una bandiera che mostra il tempo di CPU in uscita (-c
):
Esempio di uscita:
[email protected]:~$ 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
[email protected]:~$
Quando viene eseguito con l'-c
di bandiera, strace sembra contenere tutti uscita fino esecuzione termina (o messi ctrl-c
)
E con awk
per cercare il tempo CPU == 0.0:
[email protected]:~$ 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
[email protected]:~$