2
2
mirror of https://github.com/octoleo/restic.git synced 2024-11-23 05:12:10 +00:00
restic/internal
greatroar 255ba83c4b Parallel index benchmarks + benchmark optimizations
createRandomIndex was using the global RNG, which locks on every call
It was also using twice as many random numbers as necessary and doing
a float division in every iteration of the inner loop.

BenchmarkDecodeIndex was using too short an input, especially for a
parallel version. (It may now be using one that is a bit large.)

Results on linux/amd64, -benchtime=3s -count=20:

name                                     old time/op    new time/op       delta
PackerManager-8                             178ms ± 0%        178ms ± 0%           ~     (p=0.165 n=20+20)
DecodeIndex-8                              13.6µs ± 2%  4539886.8µs ± 0%  +33293901.38%  (p=0.000 n=20+18)
IndexHasUnknown-8                          44.4ns ± 7%       44.4ns ± 5%           ~     (p=0.873 n=20+19)
IndexHasKnown-8                            49.2ns ± 3%       48.3ns ± 0%         -1.86%  (p=0.000 n=20+16)
IndexAlloc-8                                802ms ± 1%        758ms ± 1%         -5.51%  (p=0.000 n=20+19)
MasterIndexLookupSingleIndex-8              124ns ± 1%        122ns ± 0%         -1.41%  (p=0.000 n=20+14)
MasterIndexLookupMultipleIndex-8            373ns ± 2%        369ns ± 2%         -1.13%  (p=0.001 n=20+20)
MasterIndexLookupSingleIndexUnknown-8      67.8ns ± 3%       68.4ns ± 5%           ~     (p=0.753 n=20+20)
MasterIndexLookupMultipleIndexUnknown-8     316ns ± 3%        315ns ± 3%           ~     (p=0.846 n=20+20)
SaveAndEncrypt-8                           30.5ms ± 1%       30.2ms ± 1%         -1.09%  (p=0.000 n=19+19)
LoadTree-8                                  527µs ± 1%        540µs ± 1%         +2.37%  (p=0.000 n=19+20)
LoadBlob-8                                 5.65ms ± 0%       5.64ms ± 0%         -0.21%  (p=0.000 n=19+18)
LoadAndDecrypt-8                           7.07ms ± 2%       5.93ms ± 0%        -16.15%  (p=0.000 n=19+20)
LoadIndex-8                                32.1ms ± 2%       25.1ms ± 0%        -21.64%  (p=0.000 n=20+18)

name                                     old speed      new speed         delta
PackerManager-8                           296MB/s ± 0%      296MB/s ± 0%           ~     (p=0.159 n=20+20)
SaveAndEncrypt-8                          138MB/s ± 1%      139MB/s ± 1%         +1.10%  (p=0.000 n=19+19)
LoadBlob-8                                177MB/s ± 0%      177MB/s ± 0%         +0.21%  (p=0.000 n=19+18)
LoadAndDecrypt-8                          141MB/s ± 2%      169MB/s ± 0%        +19.24%  (p=0.000 n=19+20)

name                                     old alloc/op   new alloc/op      delta
PackerManager-8                            91.8kB ± 0%       91.8kB ± 0%           ~     (p=0.826 n=19+12)
IndexAlloc-8                                786MB ± 0%        786MB ± 0%         +0.01%  (p=0.000 n=20+20)
SaveAndEncrypt-8                           21.0MB ± 0%       21.0MB ± 0%         -0.00%  (p=0.012 n=20+19)

name                                     old allocs/op  new allocs/op     delta
PackerManager-8                             1.41k ± 0%        1.41k ± 0%           ~     (all equal)
IndexAlloc-8                                 977k ± 0%         977k ± 0%         +0.01%  (p=0.022 n=20+20)
SaveAndEncrypt-8                             73.0 ± 0%         73.0 ± 0%           ~     (all equal)
2020-07-19 13:58:05 +02:00
..
archiver Merge pull request #2779 from greatroar/archiver-comment 2020-06-12 23:04:21 +02:00
backend Flatten backend.LimitedReadCloser structure 2020-06-17 13:11:45 +02:00
cache Honor RESTIC_CACHE_DIR on Mac and Windows 2020-02-28 15:44:32 +01:00
checker remove unnecessary error return 2020-01-27 18:28:21 +03:00
crypto Typo in crypto test name 2020-04-18 17:39:06 +02:00
debug Remove build tag release 2018-10-11 19:40:38 +02:00
errors backup: Improve error message for invalid pattern 2018-10-03 11:12:51 +02:00
filter filter: Allow double wildcard in ChildMatch 2018-06-09 23:18:13 +02:00
fs Merge pull request #2583 from greatroar/unused 2020-03-01 10:46:17 +01:00
fuse Simplify build tags for restic mount 2020-05-12 11:30:41 +02:00
hashing Micro-optimization for hashing.Writer/PackerManager 2020-03-05 22:30:04 +01:00
index Move Index.FindBlob to tests 2020-04-29 10:57:01 +02:00
limiter rclone: Respect bandwith limits 2018-05-22 20:48:17 +02:00
migrations clean up some errors from 'go vet ./...' 2018-09-05 08:04:55 -04:00
mock mock: Remove unused repository type 2019-04-13 13:38:39 +02:00
options improved slice copying 2019-06-30 23:56:36 +03:00
pack Move testing logic to test file in internal/pack 2020-03-09 14:32:28 +01:00
repository Parallel index benchmarks + benchmark optimizations 2020-07-19 13:58:05 +02:00
restic Merge pull request #2709 from greatroar/minio-sha256 2020-06-12 23:32:58 +02:00
restorer Fix non-intuitive repository behavior 2020-06-11 13:05:23 +02:00
selfupdate self-update: Don't cancel download after 30 seconds 2019-02-23 11:15:18 +01:00
test Remove remnant of Go 1.9 compatibility code from tests 2020-02-26 22:23:38 +01:00
textfile Add textfile 2018-05-01 14:38:59 +02:00
ui termstatus: Use io.WriteString to output messages. 2020-03-26 14:55:00 -07:00
walker walk: Pass parent tree ID to WalkFunc 2018-08-19 23:28:04 +02:00