[20210507]分析library cache转储.txt
--//继续前面的分析,看看mutex的地址.
$ grep "Bucket:" book_ora_12044_0003.trc | sed "s/^Bucket: #=//;s/Mutex=//;s/(.*)//" > a3.txt
--//查看a3.txt文件发现:
41 0x80a715c0
46 0x80a71688
80a715c0 = 2158433728
80a71688 = 2158433928
2158433928-2158433728 = 200
200/(46-41) = 40
--//是否可以推出每个mutex结构体占用40字节.
494 0x80a75c88
495 0x80a75cb0
80a75c88 = 2158451848
80a75cb0 = 2158451888
2158451888-2158451848 = 40
--//继续测试:
1149 0x80a7c2e0
1152 0x80a7c358
80a7c2e0 = 2158478048
80a7c358 = 2158478168
2158478168-2158478048 = 120
120/(52-49) = 40
--//写一个脚本分析看看.windows下的awk太难用了,在cygwin下使用.
$ awk 'NR==1{a=$1;b=strtonum($2) } NR>1{ print a,b,$1-a,strtonum($2)-b,(strtonum($2)-b)/($1-a);a=$1;b=strtonum($2)}' a3.txt | head
41 2158433728 5 200 40
46 2158433928 38 1520 40
84 2158435448 61 2440 40
145 2158437888 77 3080 40
222 2158440968 107 4280 40
329 2158445248 93 3720 40
422 2158448968 13 520 40
435 2158449488 17 680 40
452 2158450168 18 720 40
470 2158450888 24 960 40
$ awk 'NR==1{a=$1;b=strtonum($2) } NR>1{ print (strtonum($2)-b)/($1-a);a=$1;b=strtonum($2)}' a3.txt | sort | uniq -c | sort -nr
3698 40
1 -96675.8
1 -943344
1 -5246550
1 -511229
1 509576
1 32856.1
1 205413
1 164322
--//可以看出大部分都是占用40.也验证我的判断.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-2771268/ ,如需转载,请注明出处,否则将追究法律责任。