【发布时间】:2015-10-13 01:53:58
【问题描述】:
简单的问题:有没有办法找出特定结构占用了多少内存?
理想情况下,我希望它打印到控制台。
编辑: Krumelur 使用sizeof 函数提供了简单的解决方案。
不幸的是,它似乎不适用于数组。以下代码
println("Size of int \(123) is: \(sizeofValue(123))")
println("Size of array \([0]) is: \(sizeofValue([0]))")
println("Size of array \([0, 1, 8, 20]) is: \(sizeofValue([0, 1, 8, 20]))")
产生这个输出:
Size of int 123 is: 8
Size of array [0] is: 8
Size of array [0, 1, 8, 20] is: 8
所以不同大小的数组给出相同的大小肯定是不正确的(至少对我来说是这样)。
【问题讨论】:
-
sizeof(MyStruct) 也许?
-
@Krumelur 看起来不错......你为什么不把它作为答案?
-
字符太少,我必须有创意:)
-
@Krumelur 如果你愿意,你可以通过告诉我
sizeof(MyStruct)的返回值是什么单位来添加更多字符。或sizeofValue(myStruct)。两者都找不到,文档链接也会对我有所帮助。 -
8 是 64 位地址的大小,我认为这是 swift 中的数组变量?
标签: ios swift memory memory-management