aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Unterwurzacher2017-06-18 22:53:20 +0200
committerJakob Unterwurzacher2017-06-18 22:56:50 +0200
commitc9c4bc0141c9a9c1fd291901615aca315a481941 (patch)
treefd9fbdae619c522f2e426c8fff832adde8ad27ff
parenta4563e21ecaf7d2acce64212c96de69707d6f0bb (diff)
profiling: add streaming-write profiling helper
Writes 1GB of zeros to a gocryptfs mount while collecting cpu and memory profiles.
-rwxr-xr-xprofiling/streaming-write.bash22
1 files changed, 22 insertions, 0 deletions
diff --git a/profiling/streaming-write.bash b/profiling/streaming-write.bash
new file mode 100755
index 0000000..27d7098
--- /dev/null
+++ b/profiling/streaming-write.bash
@@ -0,0 +1,22 @@
+#!/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" -cpuprofile $T/cprof -memprofile $T/mprof \
+ $T/a $T/b
+
+# Cleanup trap
+trap "cd /; fusermount -u -z $T/b; rm -Rf $T/a" EXIT
+
+# Write 10 x 100MB instead of 1 x 1GB to keep the used disk space low
+for i in $(seq 1 10); do
+ dd if=/dev/zero of=$T/b/zero 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"