From 688373c9264495c7fa71381ca740c7473b496cd7 Mon Sep 17 00:00:00 2001 From: Jakob Unterwurzacher Date: Tue, 30 Mar 2021 16:03:42 +0200 Subject: [PATCH] profiling: add ls.bash --- profiling/ls.bash | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100755 profiling/ls.bash 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"