icz*_*cza 8

unsafe.Sizeof()

该大小不包括x可能引用的任何内存。例如,如果x是切片,则Sizeof返回切片描述符的大小,而不是该切片所引用的内存的大小。

unsafe.Sizeof(somemap)
reflect.StringHeader
type StringHeader struct {
        Data uintptr
        Len  int
}
unsafe.Sizeof(somestring)stringLen

要获取映射的实际内存需求(“深度”),请参阅golang映射保留多少内存?以及如何在Golang中获取变量的内存大小?

stringlen()stringstring
var str string = "some string"

stringSize := len(str) + unsafe.Sizeof(str)
string

例如:

s := "some loooooooong string"
s2 := s[:2]
s2len(s2) + unsafe.Sizeof(str) = 2 + unsafe.Sizeof(str)s