The array item values and the index to an item are stored in one contiguous block of memory. The size required to specific layout of structs is larger than the sum of their sizes due to alignment, and because the index to the structs is stored along with the value memory. Each item takes extra 16 bytes for index. If your items are roughly same size, a TArray> might be more performant.