2021-03-13 12:17:42 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
2022-02-23 11:24:11 +00:00
|
|
|
"fmt"
|
2021-03-13 12:17:42 +00:00
|
|
|
"log"
|
|
|
|
"runtime"
|
|
|
|
"time"
|
|
|
|
)
|
|
|
|
|
|
|
|
func initGC() {
|
|
|
|
go func() {
|
2022-02-23 11:24:11 +00:00
|
|
|
ticker := time.NewTicker(15 * time.Minute)
|
2021-03-13 12:17:42 +00:00
|
|
|
for range ticker.C {
|
2022-02-23 11:24:11 +00:00
|
|
|
doGC()
|
2021-03-13 12:17:42 +00:00
|
|
|
}
|
|
|
|
}()
|
|
|
|
}
|
|
|
|
|
|
|
|
func doGC() {
|
2022-02-26 19:38:52 +00:00
|
|
|
var before, after runtime.MemStats
|
|
|
|
runtime.ReadMemStats(&before)
|
2021-03-13 12:17:42 +00:00
|
|
|
runtime.GC()
|
2022-02-26 19:38:52 +00:00
|
|
|
runtime.ReadMemStats(&after)
|
2022-02-23 11:24:11 +00:00
|
|
|
log.Println(fmt.Sprintf(
|
|
|
|
"\nAlloc: %d MiB -> %d MiB\nSys: %d MiB -> %d MiB\nNumGC: %d",
|
2022-02-26 19:38:52 +00:00
|
|
|
before.Alloc/1024/1024, after.Alloc/1024/1024,
|
|
|
|
before.Sys/1024/1024, after.Sys/1024/1024,
|
|
|
|
after.NumGC,
|
2022-02-23 11:24:11 +00:00
|
|
|
))
|
2021-03-13 12:17:42 +00:00
|
|
|
}
|