[swift-users] Large Structs, and COW.
Daniel Tartaglia
danielt1263 at gmail.com
Fri Jan 22 13:22:00 CST 2016
If I have a large struct with lots of sub-structs and I assign to just one field of one of the sub-structs, will the system make a deep copy of the struct or a shallow copy where the unmodified portions of the object still point the same memory as the original struct?
In other words, given this code:
struct SubStruct {
var a: Int = 0
var b: Int = 0
}
struct VeryLarge {
var subStructA = SubStruct()
var subStructB = SubStruct()
var subStructC = SubStruct()
// lots of other stuff
}
func bar(var vl: VeryLarge) -> VeryLarge {
vl.subStructA.a = 5
return vl
}
let vl1 = VeryLarge()
let vl2 = bar(vl1)
Will vl2.subStructB be a copy of vl1.subStructB, or an entirely new object?
I’m worried about performance when making small changes to large objects.
Thanks,
Daniel T.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20160122/5a44eebe/attachment.html>
More information about the swift-users
mailing list