X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=scripts%2Fbloatcheck;h=fff4690f3e31071a6502f86903b72c81d86591bd;hb=7918d9ff8c39b1acdfaffb93de7d337dd4faa9a8;hp=a5a28f1cea149b5bc78bea76e66de4d832e4b5b2;hpb=7a4551ff5eec761ec303b21c9a35a37f51377a2f;p=android-x86%2Fexternal-toybox.git diff --git a/scripts/bloatcheck b/scripts/bloatcheck index a5a28f1c..fff4690f 100755 --- a/scripts/bloatcheck +++ b/scripts/bloatcheck @@ -14,47 +14,54 @@ addline() STUFF="$(printf "%s\n%s" "$STUFF" "$NEXT")" } -diff <(nm --size-sort "$1" | sort -k3,3) \ - <(nm --size-sort "$2" | sort -k3,3) | grep '^[<>]' | sort -k4,4 | \ -( -LASTNAME= -DELTA=0 -TOTAL=0 -OLD=0 -NEW=0 -STUFF= - -printf "name% 46s% 10s% 11s\n" old new delta -echo "-----------------------------------------------------------------------" -while read a b c d -do - THISNAME=$(echo " $d" | sed 's/[.][0-9]*$//') - - if [ "$LASTNAME" != "$THISNAME" ] - then - TOTAL=$(($TOTAL+$DELTA)) - [ $DELTA -ne 0 ] && addline - LASTNAME="$THISNAME" - DELTA=0 - OLD=0 - NEW=0 - fi - - SIZE=$(printf "%d" "0x$b") - if [ "$a" == "<" ] - then - OLD=$(($OLD+$SIZE)) - SIZE=$((-1*$SIZE)) - else - NEW=$(($NEW+$SIZE)) - fi - DELTA=$(($DELTA+$SIZE)) -done - -TOTAL=$(($TOTAL+$DELTA)) -[ $DELTA -ne 0 ] && addline - -echo "$STUFF" | sort -k4,4nr -echo "-----------------------------------------------------------------------" -printf "% 71d total\n" "$TOTAL" -) +do_bloatcheck() +{ + LASTNAME= + DELTA=0 + TOTAL=0 + OLD=0 + NEW=0 + STUFF= + + printf "name% 46s% 10s% 11s\n" old new delta + echo "-----------------------------------------------------------------------" + while read a b c d + do + THISNAME=$(echo "$d" | sed 's/[.][0-9]*$//') + + if [ "$LASTNAME" != "$THISNAME" ] + then + TOTAL=$(($TOTAL+$DELTA)) + [ $DELTA -ne 0 ] && addline + LASTNAME="$THISNAME" + DELTA=0 + OLD=0 + NEW=0 + fi + + SIZE=$(printf "%d" "0x$b") + if [ "$a" == "-" ] + then + OLD=$(($OLD+$SIZE)) + SIZE=$((-1*$SIZE)) + else + NEW=$(($NEW+$SIZE)) + fi + DELTA=$(($DELTA+$SIZE)) + done + + TOTAL=$(($TOTAL+$DELTA)) + [ $DELTA -ne 0 ] && addline + + echo "$STUFF" | sort -k4,4nr + echo "-----------------------------------------------------------------------" + printf "% 71d total\n" "$TOTAL" +} + +DIFF1=`mktemp base.XXXXXXX` +DIFF2=`mktemp bloat.XXXXXXX` +trap "rm $DIFF1 $DIFF2" EXIT +nm --size-sort "$1" | sort -k3,3 > $DIFF1 +nm --size-sort "$2" | sort -k3,3 > $DIFF2 +diff -U 0 $DIFF1 $DIFF2 | tail -n +3 | sed -n 's/^\([-+]\)/\1 /p' \ + | sort -k4,4 | do_bloatcheck