关于Golang struct{} 内存占用为0的探索
前提知识:
这个汇编看到
常用 framesize[-argsize] 表示,$framesize 表示将要分配的函数栈帧大小,包含调用其它函数时准备调用参数的隐式栈空间。argsize 表示参数和返回值的大小,-argsize 前面 - 不是减号,而是一个分隔符。
第一种
-
代码
-
汇编
只有 $0-8 这个argsize 也是返回参数,这个局部变量是 0 是不是说明这个struct{}{}真的没有呢?
还有这个
第二种
-
代码
-
汇编
他们对应的差距居然这么大,这是怎么回事呢?
第三种
-
代码
-
源码解释
第四种
- 代码
- 汇编
这里发现 和第一种完全一致
第五种
他和 第一、第四完全一致。
=============================》
好像还是有占用的。
-
代码
-
汇编
欢迎大家讨论。