syncthing/lib/db
Jakob Borg 83131103cf Don't load block list in ...Truncated methods
Speeds up and reduces allocations on those operations, at the price of
having a manually tweaked XDR decoder for FileInfoTruncated.

benchmark                         old ns/op      new ns/op      delta
BenchmarkReplaceAll-8             1868198122     1880206886     +0.64%
BenchmarkUpdateOneChanged-8       231852         172695         -25.51%
BenchmarkUpdateOneUnchanged-8     230624         179341         -22.24%
BenchmarkNeedHalf-8               104601744      109461427      +4.65%
BenchmarkHave-8                   29102480       34105026       +17.19%
BenchmarkGlobal-8                 150547687      172778045      +14.77%
BenchmarkNeedHalfTruncated-8      102471355      76564986       -25.28%
BenchmarkHaveTruncated-8          28758368       14277481       -50.35%
BenchmarkGlobalTruncated-8        151192913      106070136      -29.84%

benchmark                         old allocs     new allocs     delta
BenchmarkReplaceAll-8             555577         557554         +0.36%
BenchmarkUpdateOneChanged-8       1135           587            -48.28%
BenchmarkUpdateOneUnchanged-8     1135           587            -48.28%
BenchmarkNeedHalf-8               374780         374775         -0.00%
BenchmarkHave-8                   151992         152085         +0.06%
BenchmarkGlobal-8                 530033         530135         +0.02%
BenchmarkNeedHalfTruncated-8      374699         22160          -94.09%
BenchmarkHaveTruncated-8          151834         4904           -96.77%
BenchmarkGlobalTruncated-8        530037         30536          -94.24%

benchmark                         old bytes      new bytes      delta
BenchmarkReplaceAll-8             1765116216     1765305376     +0.01%
BenchmarkUpdateOneChanged-8       135085         93043          -31.12%
BenchmarkUpdateOneUnchanged-8     134976         92928          -31.15%
BenchmarkNeedHalf-8               44758752       44751791       -0.02%
BenchmarkHave-8                   11845052       11967172       +1.03%
BenchmarkGlobal-8                 80431136       80431065       -0.00%
BenchmarkNeedHalfTruncated-8      46526459       18243543       -60.79%
BenchmarkHaveTruncated-8          11348357       418998         -96.31%
BenchmarkGlobalTruncated-8        80977672       43116991       -46.75%
2015-10-21 23:49:10 +02:00
..
testdata mv internal lib 2015-08-09 09:35:26 +02:00
.gitignore mv internal lib 2015-08-09 09:35:26 +02:00
benchmark_test.go Only run benchmarks with -tags benchmark 2015-10-21 23:19:26 +02:00
blockmap.go Use batches in blockmap, speeds up and reduces memory usage on large Replace and Update ops 2015-10-21 23:05:23 +02:00
blockmap_test.go Fix import paths 2015-09-22 19:38:46 +02:00
concurrency_test.go mv internal lib 2015-08-09 09:35:26 +02:00
debug.go Implement facility based logger, debugging via REST API 2015-10-03 18:09:53 +02:00
leveldb.go The GC runs are legacy and slows things down quite a bit 2015-10-21 23:05:22 +02:00
leveldb_test.go mv internal lib 2015-08-09 09:35:26 +02:00
leveldb_xdr.go mv internal lib 2015-08-09 09:35:26 +02:00
namespaced.go mv internal lib 2015-08-09 09:35:26 +02:00
namespaced_test.go mv internal lib 2015-08-09 09:35:26 +02:00
set.go Also keep GlobalSize in RAM 2015-10-21 21:58:48 +02:00
set_test.go Only run benchmarks with -tags benchmark 2015-10-21 23:19:26 +02:00
truncated.go Don't load block list in ...Truncated methods 2015-10-21 23:49:10 +02:00
virtualmtime.go Implement facility based logger, debugging via REST API 2015-10-03 18:09:53 +02:00
virtualmtime_test.go mv internal lib 2015-08-09 09:35:26 +02:00