<commit_before>Tests of gocryptfs v1.7 and later are run on an
Intel Core i5-3470 CPU (quad-core Ivy Bridge, AES-NI supported).
Earlier tests on a Pentium G630 (Dual-core Sandy Bridge, no AES-NI).

The working directory is on tmpfs.
The untar test uses https://cdn.kernel.org/pub/linux/kernel/v3.0/linux-3.0.tar.gz .
The archive is placed on tmpfs as well.

WRITE: dd if=/dev/zero of=zero bs=131072 count=2000
READ:  dd if=zero of=/dev/null bs=131072 count=2000
UNTAR: time tar xzf ../linux-3.0.tar.gz
MD5:   time md5sum --quiet -c linux-3.0.md5sums
LS:    time ls -lR linux-3.0 > /dev/null
RM:    time rm -Rf linux-3.0

(or just run benchmark.bash)

VERSION           WRITE    READ     UNTAR  MD5   LS     RM    ENV CHANGE?                COMMIT MSG
**********************
* CPU = Pentium G630 *
**********************
v0.4                                48          1.5    5
v0.5-rc1                            56          7     19
v0.5-rc1-1                          54          4.1    9
v0.5-rc1-2                          45          1.7    3.4
v0.6                                47          1.8    4.3
v0.7                                43          1.7    4.3
v0.7.2                              26          1.8    4.3
v0.8                                23          1.8    4.3
v0.9-rc2           94               24          1.8    4.5
v0.9               94               24          1.8    4.5
v0.11             104               22          1.7    4.5
v1.1              104               20          1.5    3.4    go1.7.1
v1.1.1-34         112               22          1.5    3.6    go1.7.3
v1.2.1-33         112               21    12    1.6    4.4    go1.8
-serialize_reads  116               21    39    1.5    4.4    (v1.2.1-33 with -serialize_reads)
v1.3-27           113               20    11    1.4    4.2
v1.3-53-gf44902a  119               19    12    1.6    4.1
v1.3-64-g80516ed  123               19    11    1.3    4.2
v1.3-67-g9837cb0  125               19    11    1.4    4.2    go1.8.3, Linux 4.10
v1.3-69-ge52594d  145               19.0  11.6  1.4    4.1
v1.4-1-g3c6fe98   154               17.2  11.7  1.4    4.1
v1.4-5-g0cc6f53   182      144      16.7  11.1  1.3    3.3
v1.4-8-g80676c6   178      148      16.1  11.0  1.3    4.0
v1.4-14-g9f4bd76  182      286      15.4   7.5  1.3    4.1
v1.4-45-gd5671b7  183      282      14.9   7.3  1.1    2.9
v1.4-45-gd5671b7  252      285      15.5   7.2  1.1    2.9    go1.8.3, Linux 4.11
v1.4.1            253      285      16.0   7.4  1.3    3.0    go1.9,   Linux 4.12.5
v1.4.1-6-g276567e 258      289      16.1   7.5  1.3    3.0
v1.5              228      292      17.6   9.3  1.5    3.5    go1.10.2, Linux 4.16.8
v1.6              250      289      17.7   8.0  1.3    3.2    go1.10.3, Linux 4.17.12
v1.7-beta1        229      278      17.1   8.8  1.7    3.2    go1.11.4, Linux 4.19.12
v1.7-rc1          226      289      17.6   8.9  1.7    2.9
********************************************
* CPU = Core i5-3470, governor = powersave *
********************************************
v1.7              232      698      12.2   9.4  1.7    4.3    go1.12.9, Linux 5.2.17
v1.7.1            450      697      11.5   9.5  1.5    3.6
**********************************************
* CPU = Core i5-3470, governor = performance *
**********************************************
v1.7.1            556     1000       9.0   4.2  0.9    2.0    go1.13.6, Linux 5.4.17
v1.7.1            577     1100       8.3   4.2  0.9    2.0    go1.14.2, Linux 5.6.7
v1.7.1-60-gb23f77c 472    1100      12.7   4.2  0.8    2.0
v1.8.0            410     1000      17.5   6.7  5.4    7.8    go1.15.3, Linux 5.8.13
v2.0-beta1        387     1100      36.2  14.4 12.8   19.3
v2.0-beta1-5-gc943ed3 417 1000      30.4  12.7  9.9   16.4
v2.0-beta1-6      529     1100      17.5   9.0  3.6    9.0
v2.0-beta1-9-g029e44d  477 1000     15.5   8.7  2.8    7.6
v2.0-beta2-16-geaca820 542  997     15.9   8.8  6.2    7.8    go1.16.2, Linux 5.11.10    fusefrontend: do not encrypt ACLs
v2.0-beta2-36-g6aae2aa 505 1000     16.1   8.2  6.3    7.7
v2.0-beta2-37-g24d5d39 558 1000     12.3   6.4  4.4    2.8                               fs: add initial dirfd caching
v2.0-beta2-42-g4a07d65 549 1000      8.2   4.7  1.8    2.4                               fusefrontend: make dirCache work for "node itself"

Results for EncFS for comparison (benchmark.bash -encfs):

VERSION           WRITE    READ  UNTAR   MD5    LS     RM
**********************
* CPU = Pentium G630 *<commit_msg>doc: add benchmark for v2.0, reformat table<commit_after>Tests of gocryptfs v1.7 and later are run on an
Intel Core i5-3470 CPU (quad-core Ivy Bridge, AES-NI supported).
Earlier tests on a Pentium G630 (Dual-core Sandy Bridge, no AES-NI).

The working directory is on tmpfs.
The untar test uses https://cdn.kernel.org/pub/linux/kernel/v3.0/linux-3.0.tar.gz .
The archive is placed on tmpfs as well.

WRITE: dd if=/dev/zero of=zero bs=131072 count=2000
READ:  dd if=zero of=/dev/null bs=131072 count=2000
UNTAR: time tar xzf ../linux-3.0.tar.gz
MD5:   time md5sum --quiet -c linux-3.0.md5sums
LS:    time ls -lR linux-3.0 > /dev/null
RM:    time rm -Rf linux-3.0

(or just run benchmark.bash)

VERSION           WRITE    READ     UNTAR  MD5   LS     RM    ENV CHANGE?                COMMIT MSG
**********************
* CPU = Pentium G630 *
**********************
v0.4                                48          1.5    5
v0.5-rc1                            56          7     19
v0.5-rc1-1                          54          4.1    9
v0.5-rc1-2                          45          1.7    3.4
v0.6                                47          1.8    4.3
v0.7                                43          1.7    4.3
v0.7.2                              26          1.8    4.3
v0.8                                23          1.8    4.3
v0.9-rc2           94               24          1.8    4.5
v0.9               94               24          1.8    4.5
v0.11             104               22          1.7    4.5
v1.1              104               20          1.5    3.4    go1.7.1
v1.1.1-34         112               22          1.5    3.6    go1.7.3
v1.2.1-33         112               21    12    1.6    4.4    go1.8
-serialize_reads  116               21    39    1.5    4.4    (v1.2.1-33 with -serialize_reads)
v1.3-27           113               20    11    1.4    4.2
v1.3-53-gf44902a  119               19    12    1.6    4.1
v1.3-64-g80516ed  123               19    11    1.3    4.2
v1.3-67-g9837cb0  125               19    11    1.4    4.2    go1.8.3, Linux 4.10
v1.3-69-ge52594d  145               19.0  11.6  1.4    4.1
v1.4-1-g3c6fe98   154               17.2  11.7  1.4    4.1
v1.4-5-g0cc6f53   182      144      16.7  11.1  1.3    3.3
v1.4-8-g80676c6   178      148      16.1  11.0  1.3    4.0
v1.4-14-g9f4bd76  182      286      15.4   7.5  1.3    4.1
v1.4-45-gd5671b7  183      282      14.9   7.3  1.1    2.9
v1.4-45-gd5671b7  252      285      15.5   7.2  1.1    2.9    go1.8.3, Linux 4.11
v1.4.1            253      285      16.0   7.4  1.3    3.0    go1.9,   Linux 4.12.5
v1.4.1-6-g276567e 258      289      16.1   7.5  1.3    3.0
v1.5              228      292      17.6   9.3  1.5    3.5    go1.10.2, Linux 4.16.8
v1.6              250      289      17.7   8.0  1.3    3.2    go1.10.3, Linux 4.17.12
v1.7-beta1        229      278      17.1   8.8  1.7    3.2    go1.11.4, Linux 4.19.12
v1.7-rc1          226      289      17.6   8.9  1.7    2.9
********************************************
* CPU = Core i5-3470, governor = powersave *
********************************************
v1.7              232      698      12.2   9.4  1.7    4.3    go1.12.9, Linux 5.2.17
v1.7.1            450      697      11.5   9.5  1.5    3.6
**********************************************
* CPU = Core i5-3470, governor = performance *
**********************************************
v1.7.1                 556 1000      9.0   4.2  0.9    2.0    go1.13.6, Linux 5.4.17
v1.7.1                 577 1100      8.3   4.2  0.9    2.0    go1.14.2, Linux 5.6.7
v1.7.1-60-gb23f77c     472 1100     12.7   4.2  0.8    2.0
v1.8.0                 410 1000     17.5   6.7  5.4    7.8    go1.15.3, Linux 5.8.13
v2.0-beta1             387 1100     36.2  14.4 12.8   19.3
v2.0-beta1-5-gc943ed3  417 1000     30.4  12.7  9.9   16.4
v2.0-beta1-6           529 1100     17.5   9.0  3.6    9.0
v2.0-beta1-9-g029e44d  477 1000     15.5   8.7  2.8    7.6
v2.0-beta2-16-geaca820 542  997     15.9   8.8  6.2    7.8    go1.16.2, Linux 5.11.10    fusefrontend: do not encrypt ACLs
v2.0-beta2-36-g6aae2aa 505 1000     16.1   8.2  6.3    7.7
v2.0-beta2-37-g24d5d39 558 1000     12.3   6.4  4.4    2.8                               fs: add initial dirfd caching
v2.0-beta2-42-g4a07d65 549 1000      8.2   4.7  1.8    2.4                               fusefrontend: make dirCache work for "node itself"
v2.0                   420 1000      8.5   4.5  1.8    2.3    go1.16.5, Linux 5.11.21

Results for EncFS for comparison (benchmark.bash -encfs):

VERSION           WRITE    READ  UNTAR   MD5    LS     RM
**********************
* CPU = Pentium G630 *
{'fraction_non_alphanumeric': 0.14822524101665205, 'fraction_numerical': 0.2147239263803681, 'mean_word_length': 1.0156767498344006, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 37, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1181927', 'n_tokens_mistral': 4404, 'n_tokens_neox': 3662, 'n_words': 944}