mirror of
https://github.com/octoleo/syncthing.git
synced 2025-02-02 11:58:28 +00:00
The GC runs are legacy and slows things down quite a bit
benchmark old ns/op new ns/op delta BenchmarkReplaceAll-8 2942370526 2866418930 -2.58% BenchmarkUpdateOneChanged-8 7402489 226635 -96.94% BenchmarkUpdateOneUnchanged-8 7298777 229090 -96.86% BenchmarkNeedHalf-8 113608416 104483393 -8.03% BenchmarkHave-8 29834263 29288220 -1.83% BenchmarkGlobal-8 162773699 159269126 -2.15% BenchmarkNeedHalfTruncated-8 111943400 108235000 -3.31% BenchmarkHaveTruncated-8 29490369 28945489 -1.85% BenchmarkGlobalTruncated-8 165841081 149355833 -9.94% benchmark old allocs new allocs delta BenchmarkReplaceAll-8 1054942 1054944 +0.00% BenchmarkUpdateOneChanged-8 1149 1135 -1.22% BenchmarkUpdateOneUnchanged-8 1135 1135 +0.00% BenchmarkNeedHalf-8 374774 374777 +0.00% BenchmarkHave-8 151995 151995 +0.00% BenchmarkGlobal-8 530042 530063 +0.00% BenchmarkNeedHalfTruncated-8 374697 374699 +0.00% BenchmarkHaveTruncated-8 151834 151834 +0.00% BenchmarkGlobalTruncated-8 530050 530021 -0.01% benchmark old bytes new bytes delta BenchmarkReplaceAll-8 5074294728 5074297112 +0.00% BenchmarkUpdateOneChanged-8 141048 135097 -4.22% BenchmarkUpdateOneUnchanged-8 134976 134976 +0.00% BenchmarkNeedHalf-8 44734813 44759436 +0.06% BenchmarkHave-8 11911634 11911138 -0.00% BenchmarkGlobal-8 80436854 81609867 +1.46% BenchmarkNeedHalfTruncated-8 46514673 46588024 +0.16% BenchmarkHaveTruncated-8 11348357 11348354 -0.00% BenchmarkGlobalTruncated-8 81730740 79485168 -2.75%
This commit is contained in:
parent
943e80e26c
commit
0c0c69f0cf
@ -12,7 +12,6 @@ package db
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"runtime"
|
||||
"sort"
|
||||
|
||||
"github.com/syncthing/syncthing/lib/protocol"
|
||||
@ -170,8 +169,6 @@ func globalKeyFolder(key []byte) []byte {
|
||||
type deletionHandler func(db dbReader, batch dbWriter, folder, device, name []byte, dbi iterator.Iterator) int64
|
||||
|
||||
func ldbGenericReplace(db *leveldb.DB, folder, device []byte, fs []protocol.FileInfo, localSize, globalSize *sizeTracker, deleteFn deletionHandler) int64 {
|
||||
runtime.GC()
|
||||
|
||||
sort.Sort(fileList(fs)) // sort list on name, same as in the database
|
||||
|
||||
start := deviceKey(folder, device, nil) // before all folder/device files
|
||||
@ -306,8 +303,6 @@ func ldbReplace(db *leveldb.DB, folder, device []byte, fs []protocol.FileInfo, l
|
||||
}
|
||||
|
||||
func ldbUpdate(db *leveldb.DB, folder, device []byte, fs []protocol.FileInfo, localSize, globalSize *sizeTracker) int64 {
|
||||
runtime.GC()
|
||||
|
||||
batch := new(leveldb.Batch)
|
||||
l.Debugf("new batch %p", batch)
|
||||
snap, err := db.GetSnapshot()
|
||||
@ -601,8 +596,6 @@ func ldbWithHave(db *leveldb.DB, folder, device []byte, truncate bool, fn Iterat
|
||||
}
|
||||
|
||||
func ldbWithAllFolderTruncated(db *leveldb.DB, folder []byte, fn func(device []byte, f FileInfoTruncated) bool) {
|
||||
runtime.GC()
|
||||
|
||||
start := deviceKey(folder, nil, nil) // before all folder/device files
|
||||
limit := deviceKey(folder, protocol.LocalDeviceID[:], []byte{0xff, 0xff, 0xff, 0xff}) // after all folder/device files
|
||||
snap, err := db.GetSnapshot()
|
||||
@ -706,8 +699,6 @@ func ldbGetGlobal(db *leveldb.DB, folder, file []byte, truncate bool) (FileIntf,
|
||||
}
|
||||
|
||||
func ldbWithGlobal(db *leveldb.DB, folder, prefix []byte, truncate bool, fn Iterator) {
|
||||
runtime.GC()
|
||||
|
||||
snap, err := db.GetSnapshot()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
@ -787,8 +778,6 @@ func ldbAvailability(db *leveldb.DB, folder, file []byte) []protocol.DeviceID {
|
||||
}
|
||||
|
||||
func ldbWithNeed(db *leveldb.DB, folder, device []byte, truncate bool, fn Iterator) {
|
||||
runtime.GC()
|
||||
|
||||
start := globalKey(folder, nil)
|
||||
limit := globalKey(folder, []byte{0xff, 0xff, 0xff, 0xff})
|
||||
snap, err := db.GetSnapshot()
|
||||
@ -887,8 +876,6 @@ nextFile:
|
||||
}
|
||||
|
||||
func ldbListFolders(db *leveldb.DB) []string {
|
||||
runtime.GC()
|
||||
|
||||
snap, err := db.GetSnapshot()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
@ -920,8 +907,6 @@ func ldbListFolders(db *leveldb.DB) []string {
|
||||
}
|
||||
|
||||
func ldbDropFolder(db *leveldb.DB, folder []byte) {
|
||||
runtime.GC()
|
||||
|
||||
snap, err := db.GetSnapshot()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
@ -966,8 +951,6 @@ func unmarshalTrunc(bs []byte, truncate bool) (FileIntf, error) {
|
||||
}
|
||||
|
||||
func ldbCheckGlobals(db *leveldb.DB, folder []byte, globalSize *sizeTracker) {
|
||||
defer runtime.GC()
|
||||
|
||||
snap, err := db.GetSnapshot()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
|
Loading…
x
Reference in New Issue
Block a user