Reduce GOGC to 50

The index used by restic consumes a major part of the total memory
usage. This leads to an unnecessarily large amount of memory that
contains ephemeral objects that are only used for a short time.
This commit is contained in:
Michael Eischer 2023-06-02 21:51:50 +02:00
parent 13c32b0fbe
commit f1b73c9301
1 changed files with 10 additions and 0 deletions

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)