diff --git a/cmd/syncthing/heapprof.go b/cmd/syncthing/heapprof.go index 300951d1..88fe95d8 100644 --- a/cmd/syncthing/heapprof.go +++ b/cmd/syncthing/heapprof.go @@ -20,19 +20,24 @@ import ( "os" "runtime" "runtime/pprof" + "strconv" "syscall" "time" ) func init() { if innerProcess && os.Getenv("STHEAPPROFILE") != "" { + rate := 1 + if i, err := strconv.Atoi(os.Getenv("STHEAPPROFILE")); err == nil { + rate = i + } l.Debugln("Starting heap profiling") - go saveHeapProfiles() + go saveHeapProfiles(rate) } } -func saveHeapProfiles() { - runtime.MemProfileRate = 1 +func saveHeapProfiles(rate int) { + runtime.MemProfileRate = rate var memstats, prevMemstats runtime.MemStats t0 := time.Now()