aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Unterwurzacher2017-06-24 15:51:49 +0200
committerJakob Unterwurzacher2017-06-24 15:52:24 +0200
commitb9b52854c36eb50327445219dd1b835ca545d51e (patch)
treed1d2802b51071dce0298dd08bfad9f730d348dad
parent5c7b5770ceae7891fee03f9bf1da01e8990dcbff (diff)
profiling: add streaming read profiling helper
Reads 1GB of zeros while collecting memory and cpu profiles.
-rwxr-xr-xprofiling/streaming-read.bash29
1 files changed, 29 insertions, 0 deletions
diff --git a/profiling/streaming-read.bash b/profiling/streaming-read.bash
new file mode 100755
index 0000000..8976639
--- /dev/null
+++ b/profiling/streaming-read.bash
@@ -0,0 +1,29 @@
+#!/bin/bash -eu
+
+cd "$(dirname "$0")"
+
+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
+
+# Write 100MB test file
+dd if=/dev/zero of=$T/b/zero bs=1M count=100 status=none
+
+# Remount with profiling
+fusermount -u $T/b
+../gocryptfs -quiet -extpass "echo test" -cpuprofile $T/cprof -memprofile $T/mprof \
+ $T/a $T/b
+
+# Read 10 x 100MB instead of 1 x 1GB to keep the used disk space low
+for i in $(seq 1 10); do
+ dd if=$T/b/zero of=/dev/null bs=1M count=100
+done
+
+echo
+echo "Hint: go tool pprof ../gocryptfs $T/cprof"
+echo " go tool pprof -alloc_space ../gocryptfs /tmp/tmp.DRhBSFO6pu/mprof"