From 61a6b24d4ec554fd005875029bf87b083421e5d3 Mon Sep 17 00:00:00 2001 From: Jakob Unterwurzacher Date: Sat, 5 Jan 2019 12:17:17 +0100 Subject: [PATCH] doc: update extractloop results Update output and add a nice plot. --- Documentation/extractloop.md | 314 +++---------------------- Documentation/extractloop_plot_csv.png | Bin 0 -> 46953 bytes 2 files changed, 38 insertions(+), 276 deletions(-) create mode 100644 Documentation/extractloop_plot_csv.png diff --git a/Documentation/extractloop.md b/Documentation/extractloop.md index 62f9939..eca66bb 100644 --- a/Documentation/extractloop.md +++ b/Documentation/extractloop.md @@ -1,6 +1,11 @@ # extractloop.bash results -What the extractloop stress test does is (top comment in `extractloop.bash`): +Memory usage stabilises at 141MiB, we do not run out of fds, +and the iteration time is stable around 38 seconds: + +![](extractloop_plot_csv.png) + +What the extractloop stress test does is (top comment in `tests/stress_tests/extractloop.bash`): ``` # Mount a gocryptfs filesystem somewhere on /tmp, then run two parallel @@ -13,282 +18,39 @@ What the extractloop stress test does is (top comment in `extractloop.bash`): # huge numbers of files. ``` -Memory usage stabilises at 119MiB, we do not run out of fds, -and the iteration time is stable at 37 seconds. The test -runs slower in the beginning due to xfstests running in -parallel on the test machine. - -Test output (somewhat trimmed for brevity): - +Test output (trimmed for brevity): ``` -0 jakob@brikett:~/go/src/github.com/rfjakob/gocryptfs/tests/stress_tests$ date -Sun Jan 21 19:48:34 CET 2018 -0 jakob@brikett:~/go/src/github.com/rfjakob/gocryptfs/tests/stress_tests$ gocryptfs -version -gocryptfs v1.4.2-71-gf63ce35; go-fuse v20170619-24-g3d30ad6; 2018-01-20 go1.9.2 -0 jakob@brikett:~/go/src/github.com/rfjakob/gocryptfs/tests/stress_tests$ ./extractloop.bash +~/go/src/github.com/rfjakob/gocryptfs/tests/stress_tests$ ./extractloop.bash + +20803 (process ID) old priority 0, new priority 19 Testing gocryptfs -Test dir: /tmp/extractloop.bash.yp3 -[pid 23842] Starting loop -[pid 23843] Starting loop -[pid 23843] Iteration 1 done, 64 seconds, RSS 126268 kiB -[pid 23842] Iteration 1 done, 64 seconds, RSS 126268 kiB -[pid 23842] Iteration 2 done, 61 seconds, RSS 128512 kiB -[pid 23843] Iteration 2 done, 62 seconds, RSS 128512 kiB -[pid 23843] Iteration 3 done, 62 seconds, RSS 135564 kiB -[pid 23842] Iteration 3 done, 63 seconds, RSS 135564 kiB -[pid 23843] Iteration 4 done, 61 seconds, RSS 135564 kiB -[pid 23842] Iteration 4 done, 63 seconds, RSS 135564 kiB -[pid 23843] Iteration 5 done, 63 seconds, RSS 148592 kiB -[pid 23842] Iteration 5 done, 62 seconds, RSS 148592 kiB -[pid 23843] Iteration 6 done, 61 seconds, RSS 148592 kiB -[pid 23842] Iteration 6 done, 62 seconds, RSS 148592 kiB -[pid 23843] Iteration 7 done, 62 seconds, RSS 148592 kiB -[pid 23842] Iteration 7 done, 64 seconds, RSS 148592 kiB -[pid 23843] Iteration 8 done, 64 seconds, RSS 155412 kiB -[pid 23842] Iteration 8 done, 65 seconds, RSS 155412 kiB -[pid 23843] Iteration 9 done, 67 seconds, RSS 155412 kiB -[pid 23842] Iteration 9 done, 67 seconds, RSS 155412 kiB -[pid 23843] Iteration 10 done, 66 seconds, RSS 155412 kiB -[pid 23842] Iteration 10 done, 65 seconds, RSS 155412 kiB -[pid 23843] Iteration 11 done, 64 seconds, RSS 155412 kiB -[pid 23842] Iteration 11 done, 64 seconds, RSS 155412 kiB -[pid 23843] Iteration 12 done, 62 seconds, RSS 155412 kiB -[pid 23842] Iteration 12 done, 64 seconds, RSS 155412 kiB -[pid 23843] Iteration 13 done, 66 seconds, RSS 155412 kiB -[pid 23842] Iteration 13 done, 67 seconds, RSS 155412 kiB -[pid 23843] Iteration 14 done, 63 seconds, RSS 155412 kiB -[pid 23842] Iteration 14 done, 63 seconds, RSS 155412 kiB -[pid 23842] Iteration 15 done, 60 seconds, RSS 161136 kiB -[pid 23843] Iteration 15 done, 67 seconds, RSS 161136 kiB -[pid 23842] Iteration 16 done, 63 seconds, RSS 161136 kiB -[pid 23843] Iteration 16 done, 64 seconds, RSS 161136 kiB -[pid 23842] Iteration 17 done, 62 seconds, RSS 161136 kiB -[pid 23843] Iteration 17 done, 62 seconds, RSS 161136 kiB -[pid 23843] Iteration 18 done, 61 seconds, RSS 161136 kiB -[pid 23842] Iteration 18 done, 63 seconds, RSS 161136 kiB -[pid 23843] Iteration 19 done, 62 seconds, RSS 161136 kiB -[pid 23842] Iteration 19 done, 63 seconds, RSS 161136 kiB -[pid 23842] Iteration 20 done, 64 seconds, RSS 161136 kiB -[pid 23843] Iteration 20 done, 68 seconds, RSS 161136 kiB -[pid 23842] Iteration 21 done, 41 seconds, RSS 161136 kiB -[pid 23843] Iteration 21 done, 39 seconds, RSS 161136 kiB -[pid 23842] Iteration 22 done, 36 seconds, RSS 161380 kiB -[pid 23843] Iteration 22 done, 37 seconds, RSS 161380 kiB -[pid 23842] Iteration 23 done, 36 seconds, RSS 161380 kiB -[pid 23843] Iteration 23 done, 37 seconds, RSS 161380 kiB -[pid 23842] Iteration 24 done, 36 seconds, RSS 161380 kiB -[pid 23843] Iteration 24 done, 36 seconds, RSS 161380 kiB -[pid 23842] Iteration 25 done, 36 seconds, RSS 161628 kiB -[pid 23843] Iteration 25 done, 37 seconds, RSS 161628 kiB -[pid 23842] Iteration 26 done, 36 seconds, RSS 161628 kiB -[pid 23843] Iteration 26 done, 36 seconds, RSS 161628 kiB -[pid 23842] Iteration 27 done, 36 seconds, RSS 141060 kiB -[pid 23843] Iteration 27 done, 37 seconds, RSS 141060 kiB -[pid 23842] Iteration 28 done, 36 seconds, RSS 141060 kiB -[pid 23843] Iteration 28 done, 36 seconds, RSS 141060 kiB -[pid 23842] Iteration 29 done, 35 seconds, RSS 141060 kiB -[pid 23843] Iteration 29 done, 36 seconds, RSS 141060 kiB -[pid 23842] Iteration 30 done, 36 seconds, RSS 141060 kiB -[pid 23843] Iteration 30 done, 37 seconds, RSS 141320 kiB -[pid 23842] Iteration 31 done, 35 seconds, RSS 141320 kiB -[pid 23843] Iteration 31 done, 36 seconds, RSS 141320 kiB -[pid 23842] Iteration 32 done, 36 seconds, RSS 141320 kiB -[pid 23843] Iteration 32 done, 37 seconds, RSS 141320 kiB -[pid 23842] Iteration 33 done, 36 seconds, RSS 141320 kiB -[pid 23843] Iteration 33 done, 36 seconds, RSS 141320 kiB -[pid 23842] Iteration 34 done, 35 seconds, RSS 141320 kiB -[pid 23843] Iteration 34 done, 37 seconds, RSS 141320 kiB -[pid 23842] Iteration 35 done, 36 seconds, RSS 141320 kiB -[pid 23843] Iteration 35 done, 36 seconds, RSS 141320 kiB -[pid 23842] Iteration 36 done, 35 seconds, RSS 141320 kiB -[pid 23843] Iteration 36 done, 37 seconds, RSS 141320 kiB -[pid 23842] Iteration 37 done, 36 seconds, RSS 141320 kiB -[pid 23843] Iteration 37 done, 37 seconds, RSS 141320 kiB -[pid 23842] Iteration 38 done, 36 seconds, RSS 141320 kiB -[pid 23843] Iteration 38 done, 36 seconds, RSS 141320 kiB -[pid 23842] Iteration 39 done, 35 seconds, RSS 129656 kiB -[pid 23843] Iteration 39 done, 36 seconds, RSS 129656 kiB -[pid 23842] Iteration 40 done, 36 seconds, RSS 129656 kiB -[pid 23843] Iteration 40 done, 37 seconds, RSS 129656 kiB -[pid 23842] Iteration 41 done, 36 seconds, RSS 129656 kiB -[pid 23843] Iteration 41 done, 36 seconds, RSS 129656 kiB -[pid 23842] Iteration 42 done, 36 seconds, RSS 129656 kiB -[pid 23843] Iteration 42 done, 36 seconds, RSS 129656 kiB -[pid 23842] Iteration 43 done, 36 seconds, RSS 129656 kiB -[pid 23843] Iteration 43 done, 37 seconds, RSS 129656 kiB -[pid 23842] Iteration 44 done, 36 seconds, RSS 129656 kiB -[pid 23843] Iteration 44 done, 36 seconds, RSS 129656 kiB -[pid 23842] Iteration 45 done, 36 seconds, RSS 129656 kiB -[pid 23843] Iteration 45 done, 36 seconds, RSS 129656 kiB -[pid 23842] Iteration 46 done, 36 seconds, RSS 129656 kiB -[pid 23843] Iteration 46 done, 36 seconds, RSS 129656 kiB -[pid 23842] Iteration 47 done, 36 seconds, RSS 129656 kiB -[pid 23843] Iteration 47 done, 37 seconds, RSS 126576 kiB -[pid 23842] Iteration 48 done, 36 seconds, RSS 126576 kiB -[pid 23843] Iteration 48 done, 36 seconds, RSS 126820 kiB -[pid 23842] Iteration 49 done, 36 seconds, RSS 126820 kiB -[pid 23843] Iteration 49 done, 36 seconds, RSS 126820 kiB -[pid 23842] Iteration 50 done, 37 seconds, RSS 126820 kiB -[pid 23843] Iteration 50 done, 37 seconds, RSS 126820 kiB -[pid 23842] Iteration 51 done, 36 seconds, RSS 126820 kiB -[pid 23843] Iteration 51 done, 36 seconds, RSS 124156 kiB -[pid 23842] Iteration 52 done, 36 seconds, RSS 124156 kiB -[pid 23843] Iteration 52 done, 36 seconds, RSS 124156 kiB -[pid 23842] Iteration 53 done, 36 seconds, RSS 124156 kiB -[pid 23843] Iteration 53 done, 37 seconds, RSS 124156 kiB -[pid 23842] Iteration 54 done, 37 seconds, RSS 124156 kiB -[pid 23843] Iteration 54 done, 36 seconds, RSS 124156 kiB -[pid 23842] Iteration 55 done, 36 seconds, RSS 124156 kiB -[pid 23843] Iteration 55 done, 36 seconds, RSS 124156 kiB -[pid 23842] Iteration 56 done, 36 seconds, RSS 122004 kiB -[pid 23843] Iteration 56 done, 37 seconds, RSS 122004 kiB -[pid 23842] Iteration 57 done, 36 seconds, RSS 122004 kiB -[pid 23843] Iteration 57 done, 36 seconds, RSS 122004 kiB -[pid 23842] Iteration 58 done, 36 seconds, RSS 122004 kiB -[pid 23843] Iteration 58 done, 36 seconds, RSS 122004 kiB -[pid 23842] Iteration 59 done, 36 seconds, RSS 122004 kiB -[pid 23843] Iteration 59 done, 37 seconds, RSS 122004 kiB -[pid 23842] Iteration 60 done, 36 seconds, RSS 120636 kiB -[pid 23843] Iteration 60 done, 36 seconds, RSS 120636 kiB -[pid 23842] Iteration 61 done, 37 seconds, RSS 120636 kiB -[pid 23843] Iteration 61 done, 36 seconds, RSS 120636 kiB -[pid 23842] Iteration 62 done, 36 seconds, RSS 120636 kiB -[pid 23843] Iteration 62 done, 36 seconds, RSS 120636 kiB -[pid 23842] Iteration 63 done, 36 seconds, RSS 120636 kiB -[pid 23843] Iteration 63 done, 36 seconds, RSS 120636 kiB -[pid 23842] Iteration 64 done, 37 seconds, RSS 120116 kiB -[pid 23843] Iteration 64 done, 37 seconds, RSS 120116 kiB -[pid 23842] Iteration 65 done, 36 seconds, RSS 120116 kiB -[pid 23843] Iteration 65 done, 36 seconds, RSS 120116 kiB -[pid 23842] Iteration 66 done, 36 seconds, RSS 120116 kiB -[pid 23843] Iteration 66 done, 36 seconds, RSS 120116 kiB -[pid 23842] Iteration 67 done, 36 seconds, RSS 120116 kiB -[pid 23843] Iteration 67 done, 36 seconds, RSS 120116 kiB -[pid 23842] Iteration 68 done, 37 seconds, RSS 120100 kiB -[pid 23843] Iteration 68 done, 36 seconds, RSS 120100 kiB -[pid 23842] Iteration 69 done, 36 seconds, RSS 120100 kiB -[pid 23843] Iteration 69 done, 36 seconds, RSS 120100 kiB -[pid 23842] Iteration 70 done, 36 seconds, RSS 120100 kiB -[pid 23843] Iteration 70 done, 37 seconds, RSS 120100 kiB -[pid 23842] Iteration 71 done, 36 seconds, RSS 120100 kiB -[pid 23843] Iteration 71 done, 36 seconds, RSS 120100 kiB -[pid 23842] Iteration 72 done, 37 seconds, RSS 120100 kiB -[pid 23843] Iteration 72 done, 36 seconds, RSS 118964 kiB -[pid 23842] Iteration 73 done, 36 seconds, RSS 118964 kiB -[pid 23843] Iteration 73 done, 37 seconds, RSS 118964 kiB -[pid 23842] Iteration 74 done, 36 seconds, RSS 118964 kiB -[pid 23843] Iteration 74 done, 36 seconds, RSS 118964 kiB -[pid 23842] Iteration 75 done, 36 seconds, RSS 118964 kiB -[pid 23843] Iteration 75 done, 36 seconds, RSS 118964 kiB -[pid 23842] Iteration 76 done, 36 seconds, RSS 118964 kiB -[pid 23843] Iteration 76 done, 36 seconds, RSS 118956 kiB -[pid 23842] Iteration 77 done, 36 seconds, RSS 118956 kiB -[pid 23843] Iteration 77 done, 37 seconds, RSS 118956 kiB -[pid 23842] Iteration 78 done, 37 seconds, RSS 118956 kiB -[pid 23843] Iteration 78 done, 36 seconds, RSS 118956 kiB -[pid 23842] Iteration 79 done, 36 seconds, RSS 118956 kiB -[pid 23843] Iteration 79 done, 36 seconds, RSS 118956 kiB -[pid 23842] Iteration 80 done, 36 seconds, RSS 118956 kiB -[pid 23843] Iteration 80 done, 37 seconds, RSS 118812 kiB -[pid 23842] Iteration 81 done, 36 seconds, RSS 118812 kiB -[pid 23843] Iteration 81 done, 36 seconds, RSS 118812 kiB -[pid 23842] Iteration 82 done, 37 seconds, RSS 118812 kiB -[pid 23843] Iteration 82 done, 36 seconds, RSS 118812 kiB -[pid 23842] Iteration 83 done, 36 seconds, RSS 118812 kiB -[pid 23843] Iteration 83 done, 36 seconds, RSS 119068 kiB -[pid 23842] Iteration 84 done, 36 seconds, RSS 119068 kiB -[pid 23843] Iteration 84 done, 37 seconds, RSS 119044 kiB -[pid 23842] Iteration 85 done, 37 seconds, RSS 119044 kiB -[pid 23843] Iteration 85 done, 36 seconds, RSS 119044 kiB -[pid 23842] Iteration 86 done, 36 seconds, RSS 119044 kiB -[pid 23843] Iteration 86 done, 36 seconds, RSS 119044 kiB -[pid 23842] Iteration 87 done, 36 seconds, RSS 119044 kiB -[pid 23843] Iteration 87 done, 36 seconds, RSS 119044 kiB -[pid 23842] Iteration 88 done, 36 seconds, RSS 119044 kiB -[pid 23843] Iteration 88 done, 37 seconds, RSS 119044 kiB -[pid 23842] Iteration 89 done, 37 seconds, RSS 119012 kiB -[pid 23843] Iteration 89 done, 36 seconds, RSS 119012 kiB -[pid 23842] Iteration 90 done, 36 seconds, RSS 119788 kiB -[pid 23843] Iteration 90 done, 36 seconds, RSS 119788 kiB -[pid 23842] Iteration 91 done, 36 seconds, RSS 119788 kiB -[pid 23843] Iteration 91 done, 36 seconds, RSS 119788 kiB -[pid 23842] Iteration 92 done, 36 seconds, RSS 119788 kiB -[pid 23843] Iteration 92 done, 36 seconds, RSS 119788 kiB -[pid 23842] Iteration 93 done, 36 seconds, RSS 119788 kiB -[pid 23843] Iteration 93 done, 37 seconds, RSS 119788 kiB -[pid 23842] Iteration 94 done, 37 seconds, RSS 119788 kiB -[pid 23843] Iteration 94 done, 36 seconds, RSS 119788 kiB -[pid 23842] Iteration 95 done, 36 seconds, RSS 119788 kiB -[pid 23843] Iteration 95 done, 36 seconds, RSS 119788 kiB -[pid 23842] Iteration 96 done, 36 seconds, RSS 119788 kiB -[pid 23843] Iteration 96 done, 36 seconds, RSS 120052 kiB -[pid 23842] Iteration 97 done, 37 seconds, RSS 120052 kiB -[pid 23843] Iteration 97 done, 37 seconds, RSS 120052 kiB -[pid 23842] Iteration 98 done, 36 seconds, RSS 120052 kiB -[pid 23843] Iteration 98 done, 36 seconds, RSS 120052 kiB -[pid 23842] Iteration 99 done, 36 seconds, RSS 120052 kiB -[pid 23843] Iteration 99 done, 36 seconds, RSS 120052 kiB -[pid 23842] Iteration 100 done, 36 seconds, RSS 120052 kiB -[pid 23843] Iteration 100 done, 36 seconds, RSS 120052 kiB -[pid 23842] Iteration 101 done, 36 seconds, RSS 120052 kiB -[pid 23843] Iteration 101 done, 36 seconds, RSS 120036 kiB -[pid 23842] Iteration 102 done, 37 seconds, RSS 120036 kiB -[pid 23843] Iteration 102 done, 37 seconds, RSS 120036 kiB -[pid 23842] Iteration 103 done, 36 seconds, RSS 120036 kiB -[pid 23843] Iteration 103 done, 36 seconds, RSS 120036 kiB -[pid 23842] Iteration 104 done, 37 seconds, RSS 120036 kiB -[pid 23843] Iteration 104 done, 36 seconds, RSS 120036 kiB -[pid 23842] Iteration 105 done, 36 seconds, RSS 120036 kiB -[pid 23843] Iteration 105 done, 36 seconds, RSS 119420 kiB -[pid 23842] Iteration 106 done, 36 seconds, RSS 119420 kiB -[pid 23843] Iteration 106 done, 36 seconds, RSS 119420 kiB -[pid 23842] Iteration 107 done, 36 seconds, RSS 119420 kiB -[pid 23843] Iteration 107 done, 37 seconds, RSS 119420 kiB -[pid 23842] Iteration 108 done, 37 seconds, RSS 119420 kiB -[pid 23843] Iteration 108 done, 36 seconds, RSS 119420 kiB -[pid 23842] Iteration 109 done, 36 seconds, RSS 119420 kiB -[pid 23843] Iteration 109 done, 36 seconds, RSS 119420 kiB -[pid 23842] Iteration 110 done, 36 seconds, RSS 119420 kiB -[pid 23843] Iteration 110 done, 37 seconds, RSS 119420 kiB -[pid 23842] Iteration 111 done, 36 seconds, RSS 119420 kiB -[pid 23843] Iteration 111 done, 36 seconds, RSS 119420 kiB -[pid 23842] Iteration 112 done, 36 seconds, RSS 119420 kiB -[pid 23843] Iteration 112 done, 36 seconds, RSS 119420 kiB -[pid 23842] Iteration 113 done, 37 seconds, RSS 119420 kiB -[pid 23843] Iteration 113 done, 37 seconds, RSS 119420 kiB -[pid 23842] Iteration 114 done, 36 seconds, RSS 119420 kiB -[pid 23843] Iteration 114 done, 36 seconds, RSS 119420 kiB -[pid 23842] Iteration 115 done, 36 seconds, RSS 119420 kiB -[pid 23843] Iteration 115 done, 36 seconds, RSS 119420 kiB -[pid 23842] Iteration 116 done, 37 seconds, RSS 119420 kiB -[pid 23843] Iteration 116 done, 36 seconds, RSS 119420 kiB -[pid 23842] Iteration 117 done, 36 seconds, RSS 119420 kiB -[pid 23843] Iteration 117 done, 37 seconds, RSS 119420 kiB -[pid 23842] Iteration 118 done, 36 seconds, RSS 119420 kiB -[pid 23843] Iteration 118 done, 36 seconds, RSS 119420 kiB -[pid 23842] Iteration 119 done, 36 seconds, RSS 119420 kiB -[pid 23843] Iteration 119 done, 36 seconds, RSS 119420 kiB -[pid 23842] Iteration 120 done, 36 seconds, RSS 119420 kiB -[pid 23843] Iteration 120 done, 36 seconds, RSS 119668 kiB -[pid 23842] Iteration 121 done, 37 seconds, RSS 119668 kiB -[pid 23843] Iteration 121 done, 37 seconds, RSS 119668 kiB -[pid 23842] Iteration 122 done, 36 seconds, RSS 119668 kiB +Test dir: /tmp/extractloop_tmpdir/SMc +'/tmp/extractloop.csv' -> '/tmp/extractloop_tmpdir/SMc.csv' +[looper 2] Starting +[looper 1] Starting +[looper 2] Iteration 1 done, 42 seconds, RSS 36020 kiB +[looper 1] Iteration 1 done, 42 seconds, RSS 36020 kiB +[looper 2] Iteration 2 done, 40 seconds, RSS 45400 kiB +[looper 1] Iteration 2 done, 40 seconds, RSS 45400 kiB +[looper 1] Iteration 3 done, 40 seconds, RSS 53396 kiB +[looper 2] Iteration 3 done, 40 seconds, RSS 53396 kiB +[looper 1] Iteration 4 done, 39 seconds, RSS 64588 kiB +[looper 2] Iteration 4 done, 40 seconds, RSS 64588 kiB +[looper 1] Iteration 5 done, 40 seconds, RSS 64588 kiB +[looper 2] Iteration 5 done, 39 seconds, RSS 64588 kiB +[looper 1] Iteration 6 done, 39 seconds, RSS 71628 kiB [...] -[pid 23842] Iteration 1988 done, 36 seconds, RSS 119880 kiB -[pid 23843] Iteration 1988 done, 37 seconds, RSS 119880 kiB -[pid 23842] Iteration 1989 done, 36 seconds, RSS 119880 kiB -[pid 23843] Iteration 1989 done, 36 seconds, RSS 119880 kiB -[pid 23842] Iteration 1990 done, 36 seconds, RSS 119880 kiB -[pid 23843] Iteration 1990 done, 36 seconds, RSS 119880 kiB -[pid 23842] Iteration 1991 done, 36 seconds, RSS 119880 kiB -[pid 23843] Iteration 1991 done, 36 seconds, RSS 119880 kiB -[pid 23842] Iteration 1992 done, 37 seconds, RSS 119728 kiB -[pid 23843] Iteration 1992 done, 36 seconds, RSS 119728 kiB -[pid 23842] Iteration 1993 done, 36 seconds, RSS 119728 kiB -[pid 23843] Iteration 1993 done, 37 seconds, RSS 119728 kiB -[pid 23842] Iteration 1994 done, 36 seconds, RSS 119728 kiB -[pid 23843] Iteration 1994 done, 37 seconds, RSS 119728 kiB -^C2018/01/21 12:00:43 Unimplemented opcode INTERRUPT - -130 jakob@brikett:~/go/src/github.com/rfjakob/gocryptfs/tests/stress_tests$ +[looper 1] Iteration 945 done, 38 seconds, RSS 140832 kiB +[looper 2] Iteration 946 done, 38 seconds, RSS 140832 kiB +[looper 1] Iteration 946 done, 38 seconds, RSS 140832 kiB +[looper 1] Iteration 947 done, 37 seconds, RSS 140832 kiB +[looper 2] Iteration 947 done, 37 seconds, RSS 140832 kiB +[looper 1] Iteration 948 done, 38 seconds, RSS 140832 kiB +[looper 2] Iteration 948 done, 38 seconds, RSS 140832 kiB +[looper 1] Iteration 949 done, 38 seconds, RSS 140832 kiB +[looper 2] Iteration 949 done, 38 seconds, RSS 140832 kiB +[looper 1] Iteration 950 done, 38 seconds, RSS 140832 kiB +[looper 2] Iteration 950 done, 38 seconds, RSS 140832 kiB +[looper 1] Iteration 951 done, 38 seconds, RSS 140832 kiB +[looper 2] Iteration 951 done, 38 seconds, RSS 140832 kiB ``` diff --git a/Documentation/extractloop_plot_csv.png b/Documentation/extractloop_plot_csv.png new file mode 100644 index 0000000000000000000000000000000000000000..788fdb97302c13e379164a074e28caa1c178e224 GIT binary patch literal 46953 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 E0hBxy!T