Scala收集内存占用特征

huy*_*hjl 14 scala scala-collections

有一个关于Scala集合类的性能特征的方便页面.是否有关于内存占用的类似数据?

我有一种情况,我担心内存使用,并希望在我选择使用的集合中考虑这一点.例如,在Array[Array[T]]和之间Vector[Vector[T]].

huy*_*hjl 17

这是我通过在2.9.0上填充1,000,000个对象的相应不可变序列而发现的.我让他们都指向相同的对象来分解内容的大小.

  • Array:1x (32位基线4,000,016字节; 64位8,000,024字节)
  • Vector:1.17倍
  • List,Queue,Stack:4X
  • 评估Stream:10x

System.gc 然后调用然后触发堆转储然后在Eclipse MAT中打开.

基于此Array并且Vector非常封闭.


use*_*own 1

您可以从简单生成多个、多维向量和不同大小的数组开始:

val vMin = Vector.fill (10  , 10)(9)
val vMed = Vector.fill (1000, 10)(9)
val aMed =  Array.fill (1000, 10)(9)
Run Code Online (Sandbox Code Playgroud)

10 个由 10 个值为 9 的整数数组组成的数组,1000 个这样的数组,1000 个这样的向量...

要测量尺寸,您可以使用

$JAVA_HOME/bin/jvisualvm 
Run Code Online (Sandbox Code Playgroud)