html tool

2018年12月6日星期四

转:strace 对系统调用进行计时


http://man.linuxde.net/strace

对系统调用进行计时
strace可以使用参数-T将每个系统调用所花费的时间打印出来,每个调用的时间花销现在在调用行最右边的尖括号里面。
oracle@orainst[orcl]:~
$strace -T ./test

// 这里只摘录部分结果
read(0, 1
"1\n", 1024)                    = 2 <2 .673455="">
fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0 <0 .000014="">
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xbf5fe000 <0 .000017="">
write(1, "000000001\n", 10000000001
)             = 10 <0 .000016="">
munmap(0xbf5fe000, 4096)                = 0 <0 .000020="">
exit_group(0)                           = ?
系统调用的时间
这是一个很有用的功能,strace会将每次系统调用的发生时间记录下来,只要使用-t/tt/ttt三个参数就可以看到效果了,具体的例子可以自己去尝试。
参数名输出样式说明
-t10:33:04 exit_group(0)输出结果精确到秒
-tt10:33:48.159682 exit_group(0)输出结果精确到微妙
-ttt1262169244.788478 exit_group(0)精确到微妙,而且时间表示为unix时间戳

没有评论:

发表评论