package main import "time" import "fmt" import "runtime" const fragment_size = 13000 type Buffer struct { bufs [][]byte } func (b *Buffer) Fill() { b.bufs = make([][]byte, 1000) for i := range b.bufs { b.bufs[i] = make([]byte, fragment_size) } } func (b *Buffer) String() string { buf := make([]byte, 0, (len(b.bufs)-1)*fragment_size ) for i := 0; i < len(b.bufs)-1; i++ { buf = append(buf, b.bufs[i]...) } return string(buf) } func main() { var b Buffer b.Fill() var max uint64 = 0 for { if len(b.String()) > 0 { var m runtime.MemStats runtime.ReadMemStats(&m) if m.HeapAlloc > max { max = m.HeapAlloc } fmt.Println(max) time.Sleep(100*time.Millisecond) } } }