On 05 Apr 2016, at 01:57, Jonathan Hull via swift-users <[email protected]>
wrote:
>
> I had a quick question on the memory used by enums with associated values in
> the current implementation. If I have an enum like the following:
>
> enum MyEnum {
> case mostCommonlyUsed
> case somewhatCommon (Int,Int)
> case prettyRare (Int,Int,Int,Int,Int)
> }
>
> If this enum is going to be used by tens/hundreds of thousands of structs, am
> I actually saving any space by breaking out the rarer cases which store more
> data or is the footprint just equal to the largest case?
1> enum MyEnum {
2. case mostCommonlyUsed
3. case somewhatCommon (Int,Int)
4. case prettyRare (Int,Int,Int,Int,Int)
5. }
6> sizeof(MyEnum)
$R0: Int = 41
7> strideof(MyEnum)
$R1: Int = 48
It depends on what you're doing. The pure "size" is 41 bytes, but the alignment
of these would be 48 bytes.
Those numbers are very platform dependent -- these are on 64 bit OS X.
/Daniel
_______________________________________________
swift-users mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-users