一个标准的 heap profile 头如下所示:
heapprofile in_use_object: in_use_space [alloc_object: alloc_space] @ stack_trace
HeapSys,从系统申请的用于 Heap 的内存大小
HeapInuse,正在使用的 Heap
HeapIdle,没有使用的 Heap
HeapSys = HeapInuse + HeapIdle
HeapReleased, HeapIdle 中已经归还给 OS 的部分
HeapIdle - HeapReleased,可以归还给 OS 但是还没归还的部分
Sys - HeapReleased,由 Go 持有的内存
HeapAlloc,分配出去的(由用户持有的)Heap,包括 reachable 的和还没被 GC 到的
NextGC,下一次 GC 的阈值,当 HeapAlloc >= NextGC 时就意味着即将 GC 了
LastGC,最近一次 GC 结束的时间戳
