xref: /netbsd-src/external/bsd/zstd/dist/contrib/linux-kernel/squashfs-benchmark.sh (revision 3117ece4fc4a4ca4489ba793710b60b0d26bab6c)
1*3117ece4Schristos# !/bin/sh
2*3117ece4Schristosset -e
3*3117ece4Schristos
4*3117ece4Schristos# Benchmarks run on a Ubuntu 14.04 VM with 2 cores and 4 GiB of RAM.
5*3117ece4Schristos# The VM is running on a Macbook Pro with a 3.1 GHz Intel Core i7 processor and
6*3117ece4Schristos# 16 GB of RAM and an SSD.
7*3117ece4Schristos
8*3117ece4Schristos# $BENCHMARK_DIR is generated with the following commands, from the Ubuntu image
9*3117ece4Schristos# ubuntu-16.10-desktop-amd64.iso.
10*3117ece4Schristos# > mkdir mnt
11*3117ece4Schristos# > sudo mount -o loop ubuntu-16.10-desktop-amd64.iso mnt
12*3117ece4Schristos# > cp mnt/casper/filesystem.squashfs .
13*3117ece4Schristos# > sudo unsquashfs filesystem.squashfs
14*3117ece4Schristos
15*3117ece4Schristos# $HOME is on a ext4 filesystem
16*3117ece4SchristosBENCHMARK_DIR="$HOME/squashfs-root/"
17*3117ece4SchristosBENCHMARK_FS="$HOME/filesystem.squashfs"
18*3117ece4Schristos
19*3117ece4Schristos# Normalize the environment
20*3117ece4Schristossudo rm -f $BENCHMARK_FS 2> /dev/null > /dev/null || true
21*3117ece4Schristossudo umount /mnt/squashfs 2> /dev/null > /dev/null || true
22*3117ece4Schristos
23*3117ece4Schristos# Run the benchmark
24*3117ece4Schristosecho "Compression"
25*3117ece4Schristosecho "sudo mksquashfs $BENCHMARK_DIR $BENCHMARK_FS $@"
26*3117ece4Schristostime sudo mksquashfs $BENCHMARK_DIR $BENCHMARK_FS $@ 2> /dev/null > /dev/null
27*3117ece4Schristos
28*3117ece4Schristosecho "Approximate compression ratio"
29*3117ece4Schristosprintf "%d / %d\n"                                                             \
30*3117ece4Schristos  $(sudo du -sx --block-size=1 $BENCHMARK_DIR | cut -f1)                       \
31*3117ece4Schristos  $(sudo du -sx --block-size=1 $BENCHMARK_FS  | cut -f1);
32*3117ece4Schristos
33*3117ece4Schristos# Mount the filesystem
34*3117ece4Schristossudo mount -t squashfs $BENCHMARK_FS /mnt/squashfs
35*3117ece4Schristos
36*3117ece4Schristosecho "Decompression"
37*3117ece4Schristostime sudo tar -c /mnt/squashfs 2> /dev/null | wc -c > /dev/null
38*3117ece4Schristos
39*3117ece4Schristossudo umount /mnt/squashfs
40