当前位置: > > > > 如何计算复杂映射变量的内存大小
来源:stackoverflow
2024-04-28 14:00:32
0浏览
收藏
你在学习Golang相关的知识吗?本文《如何计算复杂映射变量的内存大小》,主要介绍的内容就涉及到,如果你想提升自己的开发能力,就不要错过这篇文章,大家要知道编程理论基础和实战操作都是不可或缺的哦!
问题内容
我正在尝试计算内存中变量(entrymap)的大小。
type entry interface { a() string b() string c() time.time d() int64 } type entries []entry type entrymap map[string]entries
到目前为止我得到的是:
hm = make(EntryMap) SizeInMem = 8 //Length of Empty HMap for key, value := range hm { A = 8 // For each Key Value Assignment B = len(Key) + 1 // Size of key string var C = len(Entries) * unsafe.Sizeof(Entry) // Size of Entry object * len of slice SizeInMem += A+B+C } fmt.Println("Size in Memory &v", SizeInMem)
这是确定内存中变量大小的正确方法吗?
解决方案
这不是你可以及时计算的事情……
但是我为你准备了测试演示。
type Entry interface { A() string B() string D() int64 } type Entries []Entry type EntryMap map[string]Entries func main() { size := memcalc(func() { /* Put your code here */ var hm = make(EntryMap) // do something with map, grow, for example // pass variable to this function to measure calc(hm) }) fmt.Println(size) }
以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持!更多关于Golang的相关知识,也可关注公众号。