Commit 41f388bf authored by Vladimir Barsukov's avatar Vladimir Barsukov
Browse files

fix

parent c76eb20c
...@@ -2,7 +2,6 @@ package zdebug ...@@ -2,7 +2,6 @@ package zdebug
import ( import (
"fmt" "fmt"
"git.barsukov.pro/barsukov/zgo/zjson"
"git.barsukov.pro/barsukov/zgo/zutils" "git.barsukov.pro/barsukov/zgo/zutils"
"runtime" "runtime"
"strings" "strings"
...@@ -10,32 +9,39 @@ import ( ...@@ -10,32 +9,39 @@ import (
) )
type Monitor struct { type Monitor struct {
Alloc, Alloc uint64 `json:",omitempty"`
Sys, HeapInuse uint64 `json:",omitempty"`
LiveObjects uint64 MaxAlloc uint64 `json:",omitempty"`
MaxSys uint64 `json:",omitempty"`
NumGC uint32 LiveObjects uint64 `json:",omitempty"`
NumGoroutine int
NumGC uint32 `json:",omitempty"`
NumGoroutine int `json:",omitempty"`
} }
const mb = 1024 * 1024
func NewMonitor(secs int) { func NewMonitor(secs int) {
go func() { go func() {
var m Monitor
var rtm runtime.MemStats var rtm runtime.MemStats
var interval = time.Duration(secs) * time.Second var memMax uint64
for { for {
<-time.After(interval) <-time.After(time.Duration(secs) * time.Second)
runtime.ReadMemStats(&rtm) runtime.ReadMemStats(&rtm)
m.NumGoroutine = runtime.NumGoroutine() mem := ((rtm.HeapIdle - rtm.HeapReleased) + (rtm.Alloc + rtm.HeapInuse)) / 1e6
memMax = max(memMax, mem)
m.Alloc = rtm.Alloc / 1e6
m.Sys = rtm.Sys / 1e6
m.LiveObjects = rtm.Mallocs - rtm.Frees
m.NumGC = rtm.NumGC
fmt.Println(zjson.MustString(m)) fmt.Printf("Z_DEBUG: MEM: %v; MEM_MAX: %v; OBJ: %v, GO: %v, GC: %v\n",
mem,
memMax,
(rtm.Mallocs-rtm.Frees)/1e3,
runtime.NumGoroutine(),
rtm.NumGC,
)
} }
}() }()
} }
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment