summaryrefslogtreecommitdiff
path: root/profiling/ls.bash
blob: 5f736b62a0f5e1e4d8d008c230233c376c95e486 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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 -nosyslog -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 -nosyslog -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"