blob: 752c7b12ecd63872954662ab6cf39d61700576bf [file] [log] [blame]
#!/bin/bash
# Copyright 2018 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
### compute some blobfs statistics from the build
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"/lib/vars.sh
fx-config-read
cd "${FUCHSIA_BUILD_DIR}"
echo "Top 50 Largest blobs:"
find "./package" -not -empty -name final_package_manifest -exec cat {} \; |
cut -d = -f 2 |
sort |
uniq | xargs wc -c | sort -rn | head -n 50
echo "De-duplicated blobs:"
find "./package" -not -empty -name final_package_manifest -exec cat {} \; |
cut -d = -f 2 |
sort |
uniq -cd
echo "De-duplicated blob storage savings:"
find "./package" -not -empty -name final_package_manifest -exec cat {} \; |
cut -d = -f 2 |
sort |
uniq -cd | xargs -L 1 bash -c "count=\$0; file=\$1; size=\$(wc -c \$file | cut -d \\ -f 1 ); total=\$(( \$size * \$count )); printf '%5d%% %8d / %8d %s\\n' \$(( 100 - (\$size * 100 / \$total) )) \$size \$total \$file"
echo "Total savings from deduplication:"
actual=0
for i in $(find "./package" -not -empty -name final_package_manifest -exec cat {} \; |
cut -d = -f 2 |
sort |
uniq | xargs -I % wc -c % | cut -d ' ' -f 1 ); do
let actual+=$i
done
total=0
for i in $(find "./package" -not -empty -name final_package_manifest -exec cat {} \; |
cut -d = -f 2 |
sort |
uniq -c | xargs -L 1 bash -c "count=\$0; file=\$1; size=\$(wc -c \$file | cut -d \\ -f 1 ); echo \$((\$size * \$count))"
); do
let total+=$i
done
printf "%5d%% %8d / %8d\n" $(( 100 - ($actual * 100 / $total) )) $actual $total