2021-03-30 16:03:42 +02:00
|
|
|
#!/bin/bash -eu
|
|
|
|
|
|
|
|
cd "$(dirname "$0")"
|
|
|
|
|
|
|
|
# Download /tmp/linux-3.0.tar.gz
|
|
|
|
../tests/dl-linux-tarball.bash
|
|
|
|
|
|
|
|
T=$(mktemp -d)
|
2021-08-31 19:01:47 +02:00
|
|
|
mkdir "$T/a" "$T/b"
|
2021-03-30 16:03:42 +02:00
|
|
|
|
2021-09-10 11:51:41 +02:00
|
|
|
set -x
|
|
|
|
../gocryptfs -init -quiet -scryptn 10 -extpass "echo test" "$@" "$T/a"
|
|
|
|
{ set +x ; } 2> /dev/null
|
|
|
|
../gocryptfs -quiet -nosyslog -extpass "echo test" "$@" "$T/a" "$T/b"
|
2021-03-30 16:03:42 +02:00
|
|
|
|
|
|
|
# Cleanup trap
|
|
|
|
trap "cd /; fusermount -u -z $T/b; rm -Rf $T/a" EXIT
|
|
|
|
|
|
|
|
echo "Creating 40000 empty files (linux-3.0.tar.gz contains 36782 files)..."
|
|
|
|
SECONDS=0
|
|
|
|
for dir in $(seq -w 1 200); do
|
2021-08-31 19:01:47 +02:00
|
|
|
mkdir "$T/b/$dir"
|
|
|
|
( cd "$T/b/$dir" ; touch $(seq -w 1 200) )
|
2021-03-30 16:03:42 +02:00
|
|
|
done
|
|
|
|
echo "done, $SECONDS seconds"
|
|
|
|
|
|
|
|
echo "Remount..."
|
2021-08-31 19:01:47 +02:00
|
|
|
fusermount -u "$T/b"
|
2021-09-10 11:51:41 +02:00
|
|
|
set -x
|
2021-08-31 19:01:47 +02:00
|
|
|
../gocryptfs -quiet -nosyslog -extpass "echo test" -cpuprofile "$T/cprof" -memprofile "$T/mprof" \
|
2021-09-10 11:51:41 +02:00
|
|
|
"$@" "$T/a" "$T/b"
|
|
|
|
{ set +x ; } 2> /dev/null
|
2021-03-30 16:03:42 +02:00
|
|
|
|
|
|
|
echo "Running ls under profiler (3x)..."
|
|
|
|
for i in 1 2 3; do
|
|
|
|
SECONDS=0
|
2021-08-31 19:01:47 +02:00
|
|
|
ls -lR "$T/b" > /dev/null
|
2021-03-30 16:03:42 +02:00
|
|
|
echo "$i done, $SECONDS seconds"
|
|
|
|
done
|
|
|
|
|
|
|
|
echo
|
|
|
|
echo "Hint: go tool pprof ../gocryptfs $T/cprof"
|
|
|
|
echo " go tool pprof -alloc_space ../gocryptfs $T/mprof"
|