我试图用Instrument
工具查看堆栈内存上的结构体内存分配,但我只看到了堆分配。
在Instrument
中是否有一个选项可以查看堆栈内存的分配情况?
//代码
struct ContentView: View {
@State var arr: [Model] = []
var body: some View {
VStack {
Text("Hello, world!")
}
.task {
for _ in 0...5000 {
arr.append(Model())
}
}
}
}
//结构模型
struct Model {
let id: Int = 1
}
1条答案
按热度按时间thtygnil1#
Swift中的数组实际上是一个struct,有一个引用计数的对象来保存数据--这使得给一个有一百万个元素的数组赋值变得更快。实际的数据总是在堆上。(如果数据量很小的数组不做任何堆分配,我不会感到惊讶,例如一个只有一个对象引用的数组)。