# Golang Heap Profile 解析

By [simon0-o](https://paragraph.com/@simon0-o) · 2022-06-02

---

Heap Profile 中 head 各字段的含义
--------------------------

一个标准的 heap profile 头如下所示：

    heapprofile in_use_object: in_use_space [alloc_object: alloc_space] @ stack_trace
    

Heap Profile 中 heap 各字段的含义
--------------------------

*   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 结束的时间戳

---

*Originally published on [simon0-o](https://paragraph.com/@simon0-o/golang-heap-profile)*
