summaryrefslogtreecommitdiff
path: root/profiling/ls.bash
diff options
context:
space:
mode:
authorJakob Unterwurzacher2021-03-30 16:03:42 +0200
committerJakob Unterwurzacher2021-03-30 16:03:42 +0200
commit688373c9264495c7fa71381ca740c7473b496cd7 (patch)
tree4b6fa7c6a96d5c56ca406203db7d64ff82bada2c /profiling/ls.bash
parent1d919d01fdb3b98ff6a534426ee8c07df2e917a1 (diff)
profiling: add ls.bash
Diffstat (limited to 'profiling/ls.bash')
-rwxr-xr-xprofiling/ls.bash39
1 files changed, 39 insertions, 0 deletions
diff --git a/profiling/ls.bash b/profiling/ls.bash
new file mode 100755
index 0000000..1183ff6
--- /dev/null
+++ b/profiling/ls.bash
@@ -0,0 +1,39 @@
+#!/bin/bash -eu
+
+cd "$(dirname "$0")"
+
+# Download /tmp/linux-3.0.tar.gz
+../tests/dl-linux-tarball.bash
+
+T=$(mktemp -d)
+mkdir $T/a $T/b
+
+../gocryptfs -init -quiet -scryptn 10 -extpass "echo test" $T/a
+../gocryptfs -quiet -extpass "echo test" $T/a $T/b
+
+# 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
+ mkdir $T/b/$dir
+ ( cd $T/b/$dir ; touch $(seq -w 1 200) )
+done
+echo "done, $SECONDS seconds"
+
+echo "Remount..."
+fusermount -u $T/b
+../gocryptfs -quiet -extpass "echo test" -cpuprofile $T/cprof -memprofile $T/mprof \
+ $T/a $T/b
+
+echo "Running ls under profiler (3x)..."
+for i in 1 2 3; do
+SECONDS=0
+ls -lR $T/b > /dev/null
+echo "$i done, $SECONDS seconds"
+done
+
+echo
+echo "Hint: go tool pprof ../gocryptfs $T/cprof"
+echo " go tool pprof -alloc_space ../gocryptfs $T/mprof"