当前位置: > > > > 如何计算复杂映射变量的内存大小
如何计算复杂映射变量的内存大小
来源: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的相关知识,也可关注米云公众号。
