为了账号安全,请及时绑定邮箱和手机立即绑定

在 Go 1.3.1 中获取变量内存使用情况

在 Go 1.3.1 中获取变量内存使用情况

Go
白衣染霜花 2021-08-16 16:03:17
为什么这段代码找不到内存使用(m2-m1)和(m4-m3)?为什么 (m3-m2) 和 (m5-m4) 需要分配额外的内存?type T struct {    B uint8    S string    I int}func memUsage(mOld, mNew *runtime.MemStats) {    fmt.Println("Alloc:", mNew.Alloc-mOld.Alloc,        "HeapAlloc:", mNew.HeapAlloc-mOld.HeapAlloc,        "TotalAlloc:", mNew.TotalAlloc-mOld.TotalAlloc)}func main() {    var m1, m2, m3, m4, m5, m6 runtime.MemStats    runtime.ReadMemStats(&m1)    t := T{}    runtime.ReadMemStats(&m2)    fmt.Println(t)    memUsage(&m1, &m2)    runtime.ReadMemStats(&m3)    t2 := "abc"    runtime.ReadMemStats(&m4)    fmt.Println(t2)    memUsage(&m3, &m4)    runtime.ReadMemStats(&m5)    t3 := map[int]string{1: "x"}    runtime.ReadMemStats(&m6)    fmt.Println(t3)    memUsage(&m5, &m6)    memUsage(&m2, &m3)    memUsage(&m4, &m5)}输出{0  0}Alloc: 0 HeapAlloc: 0 TotalAlloc: 0abcAlloc: 0 HeapAlloc: 0 TotalAlloc: 0map[1:x]Alloc: 256 HeapAlloc: 256 TotalAlloc: 256Alloc: 432 HeapAlloc: 432 TotalAlloc: 432Alloc: 64 HeapAlloc: 64 TotalAlloc: 64
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 239 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信