Merge pull request #4353 from MichaelEischer/tune-gc

Tune Go garbage collector
This commit is contained in:
Michael Eischer
2023-06-16 23:24:39 +02:00
committed by GitHub
4 changed files with 23 additions and 0 deletions

View File

@@ -3,6 +3,7 @@ package main
import (
"context"
"math"
"runtime"
"sort"
"strconv"
"strings"
@@ -205,6 +206,9 @@ func runPruneWithRepo(ctx context.Context, opts PruneOptions, gopts GlobalOption
return err
}
// Trigger GC to reset garbage collection threshold
runtime.GC()
return doPrune(ctx, opts, gopts, repo, plan)
}

View File

@@ -7,6 +7,7 @@ import (
"log"
"os"
"runtime"
godebug "runtime/debug"
"github.com/restic/restic/internal/debug"
"github.com/restic/restic/internal/options"
@@ -81,7 +82,16 @@ func needsPassword(cmd string) bool {
var logBuffer = bytes.NewBuffer(nil)
func tweakGoGC() {
// lower GOGC from 100 to 50, unless it was manually overwritten by the user
oldValue := godebug.SetGCPercent(50)
if oldValue != 100 {
godebug.SetGCPercent(oldValue)
}
}
func main() {
tweakGoGC()
// install custom global logger into a buffer, if an error occurs
// we can show the logs
log.SetOutput(logBuffer)