Mercurial > hg > toybox
comparison scripts/bloatcheck @ 1337:ca297cc8a204 draft
Replace large parenthetical in bloatcheck with a function.
author | Rob Landley <rob@landley.net> |
---|---|
date | Sun, 08 Jun 2014 13:24:02 -0500 |
parents | f3169b2492f1 |
children | e084440e6995 |
comparison
equal
deleted
inserted
replaced
1336:97c7f42068b5 | 1337:ca297cc8a204 |
---|---|
12 [ -z "$STUFF" ] && | 12 [ -z "$STUFF" ] && |
13 STUFF="$NEXT" || | 13 STUFF="$NEXT" || |
14 STUFF="$(printf "%s\n%s" "$STUFF" "$NEXT")" | 14 STUFF="$(printf "%s\n%s" "$STUFF" "$NEXT")" |
15 } | 15 } |
16 | 16 |
17 do_bloatcheck() | |
18 { | |
19 LASTNAME= | |
20 DELTA=0 | |
21 TOTAL=0 | |
22 OLD=0 | |
23 NEW=0 | |
24 STUFF= | |
25 | |
26 printf "name% 46s% 10s% 11s\n" old new delta | |
27 echo "-----------------------------------------------------------------------" | |
28 while read a b c d | |
29 do | |
30 THISNAME=$(echo " $d" | sed 's/[.][0-9]*$//') | |
31 | |
32 if [ "$LASTNAME" != "$THISNAME" ] | |
33 then | |
34 TOTAL=$(($TOTAL+$DELTA)) | |
35 [ $DELTA -ne 0 ] && addline | |
36 LASTNAME="$THISNAME" | |
37 DELTA=0 | |
38 OLD=0 | |
39 NEW=0 | |
40 fi | |
41 | |
42 SIZE=$(printf "%d" "0x$b") | |
43 if [ "$a" == "<" ] | |
44 then | |
45 OLD=$(($OLD+$SIZE)) | |
46 SIZE=$((-1*$SIZE)) | |
47 else | |
48 NEW=$(($NEW+$SIZE)) | |
49 fi | |
50 DELTA=$(($DELTA+$SIZE)) | |
51 done | |
52 | |
53 TOTAL=$(($TOTAL+$DELTA)) | |
54 [ $DELTA -ne 0 ] && addline | |
55 | |
56 echo "$STUFF" | sort -k4,4nr | |
57 echo "-----------------------------------------------------------------------" | |
58 printf "% 71d total\n" "$TOTAL" | |
59 } | |
60 | |
17 diff <(nm --size-sort "$1" | sort -k3,3) \ | 61 diff <(nm --size-sort "$1" | sort -k3,3) \ |
18 <(nm --size-sort "$2" | sort -k3,3) | grep '^[<>]' | sort -k4,4 | \ | 62 <(nm --size-sort "$2" | sort -k3,3) | grep '^[<>]' | sort -k4,4 | \ |
19 ( | 63 do_bloatcheck |
20 LASTNAME= | |
21 DELTA=0 | |
22 TOTAL=0 | |
23 OLD=0 | |
24 NEW=0 | |
25 STUFF= | |
26 | |
27 printf "name% 46s% 10s% 11s\n" old new delta | |
28 echo "-----------------------------------------------------------------------" | |
29 while read a b c d | |
30 do | |
31 THISNAME=$(echo " $d" | sed 's/[.][0-9]*$//') | |
32 | |
33 if [ "$LASTNAME" != "$THISNAME" ] | |
34 then | |
35 TOTAL=$(($TOTAL+$DELTA)) | |
36 [ $DELTA -ne 0 ] && addline | |
37 LASTNAME="$THISNAME" | |
38 DELTA=0 | |
39 OLD=0 | |
40 NEW=0 | |
41 fi | |
42 | |
43 SIZE=$(printf "%d" "0x$b") | |
44 if [ "$a" == "<" ] | |
45 then | |
46 OLD=$(($OLD+$SIZE)) | |
47 SIZE=$((-1*$SIZE)) | |
48 else | |
49 NEW=$(($NEW+$SIZE)) | |
50 fi | |
51 DELTA=$(($DELTA+$SIZE)) | |
52 done | |
53 | |
54 TOTAL=$(($TOTAL+$DELTA)) | |
55 [ $DELTA -ne 0 ] && addline | |
56 | |
57 echo "$STUFF" | sort -k4,4nr | |
58 echo "-----------------------------------------------------------------------" | |
59 printf "% 71d total\n" "$TOTAL" | |
60 ) |