diff options
author | Marvin Borner | 2024-01-21 13:17:54 +0100 |
---|---|---|
committer | Marvin Borner | 2024-01-21 14:52:05 +0100 |
commit | d1813a10c682afca756250fbb6133bb0853e0054 (patch) | |
tree | 6f6c7bc21cf1e8d0f4ce07ec69607fdb268a271c /optimize | |
parent | 2e46b5875586dd4f7f69b7f6e708d55235ce29a1 (diff) |
Diffstat (limited to 'optimize')
-rwxr-xr-x | optimize | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/optimize b/optimize new file mode 100755 index 0000000..a70b936 --- /dev/null +++ b/optimize @@ -0,0 +1,36 @@ +#!/bin/bash + +# finds optimal --min-size value for bloc + +target="blc" + +# remove files on exit +trap 'rm -f "$file".bloc "$file".bloc."$target"; exit 0' EXIT SIGINT SIGTERM + +if [ $# -eq 0 ]; then + echo "Usage: $0 <file>" + exit 1 +fi + +file=$1 + +function try { + bloc --from-blc -i "$file" -o "$file".bloc -m "$1" + blocade -i "$file".bloc -t "$target" -o "$file".bloc."$target" + size="$(stat -c %s "$file".bloc."$target")" +} + +low=5 +high=100000 +best=100000000000000000 +while [ $low -lt $high ]; do + mid=$(((low + high) / 2)) + try $mid + echo "$mid: $size" + if [ "$size" -le $best ]; then + best=$size + high=$((mid - 1)) + else + low=$((mid + 1)) + fi +done |