Skip to content

Commit 364cd7c

Browse files
committed
v1.2.2 bugfix
---------------- 1. 遗漏编译脚本提交
1 parent e484413 commit 364cd7c

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed

src/scripts/stats_static_lib.sh

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
#! /bin/bash
2+
3+
TARGET=$1
4+
TEMPD=$(mktemp -d -t STATD-XXXX)
5+
TEMPF=$(mktemp -t STATF-XXXX)
6+
7+
#echo "TARGET = ${TARGET}"
8+
#echo "STAGED = ${STAGED}"
9+
#echo "TEMPD = ${TEMPD}"
10+
11+
if [ ! -f ${TARGET} ] || [ ! -d ${STAGED} ]; then
12+
echo "Invalid Env"
13+
exit 1
14+
fi
15+
16+
cp ${TARGET} ${TEMPD}
17+
cd ${TEMPD}
18+
ar xf $(basename ${TARGET})
19+
rm -f $(basename ${TARGET})
20+
${STRIP} *.o > /dev/null 2>&1
21+
22+
NAME=$1
23+
for obj in $(ls *.o); do
24+
dir=$(find ${STAGED} -name ${obj}|xargs dirname|xargs basename)
25+
printf "%-12s %-32s %s\n" $(basename $1) ${obj} $(du -b ${obj}|awk '{ print $1 }')
26+
done | sort > ${TEMPF}
27+
28+
MODS=$(cat ${TEMPF}|awk '{ print $1 }'|sort -u)
29+
30+
TOTAL=$(cat ${TEMPF}|awk '{ sum += $3 } END { print sum }')
31+
# echo "TOTAL = ${TOTAL}"
32+
33+
SMODS=$( \
34+
for mod in ${MODS}; do \
35+
MSIZE=$(grep "^${mod}" ${TEMPF}|awk '{ sum += $3 } END { print sum }'); \
36+
printf "%-8s %s\n" \
37+
$(awk -v a=${MSIZE} -v b=${TOTAL} 'BEGIN { printf("%.2f%%\n", a/b*100); }') \
38+
"${mod}"; \
39+
done | sort -nr | awk '{ print $2 }' \
40+
)
41+
42+
echo ""
43+
for mod in ${SMODS}; do
44+
MSIZE=$(grep "^${mod}" ${TEMPF}|awk '{ sum += $3 } END { print sum }')
45+
OBJS=$(grep "^${mod}" ${TEMPF}|awk '{ print $2 }')
46+
for obj in ${OBJS}; do
47+
FSIZE=$(grep "\<${obj}\>" ${TEMPF}|awk '{ print $3 }')
48+
printf " %-8s %28s | %-8s %8s %-8s\n" \
49+
$(awk -v a=${FSIZE} -v b=${MSIZE} 'BEGIN { printf("%.2f%%\n", a/b*100); }') \
50+
"${obj}" "${mod}" "${FSIZE} /" "${MSIZE}"
51+
done | sort -nr
52+
echo " -----------------------------------------------------------------"
53+
done
54+
55+
echo ""
56+
for mod in ${MODS}; do
57+
MSIZE=$(grep "^${mod}" ${TEMPF}|awk '{ sum += $3 } END { print sum }')
58+
printf " %-8s %-12s %16s\n" \
59+
$(awk -v a=${MSIZE} -v b=${TOTAL} 'BEGIN { printf("%.2f%%\n", a/b*100); }') \
60+
"[ ${mod} ]" "${MSIZE} Bytes"
61+
done | sort -nr
62+
63+
cd ${OLDPWD}
64+
rm -rf ${TEMPD}
65+
rm -f ${TEMPF}

0 commit comments

Comments
 (0)