Scala collection memory footprint characteristics
scala, scala-collections
Solution
Here is what I've found out by filling up those respective immutable sequences with 1,000,000 objects on 2.9.0. I had them all point to the same object to factor out the size of the content.
- `Array`: 1x (baseline 4,000,016 bytes on 32 bits; 8,000,024 on 64 bits)
- `Vector`: 1.17x
- `List`, `Queue`, `Stack`: 4x
- evaluated `Stream`: 10x
`System.gc` was called then triggered heap dump then opened in Eclipse MAT.
Based on that `Array` and `Vector` are pretty closed.
Problem
There is a handy page about performance characteristics of the Scala collection classes. Is there similar data on memory footprint? I have a situation where I'm concerned about memory use and would like to factor this in my choice of collection to use. For instance, between `Array[Array[T]]` and `Vector[Vector[T]]`.