Scala 案例类内存消耗

Scala 案例类内存消耗,scala,memory-management,Scala,Memory Management,我有定义某些实体结构的代码,例如: case class EntityDefinition(id: UUID, name: String, propertyDefinitions: Map[String, PropertyDefinition] = Map.empty[String, PropertyDefinition]) 我有以下实体代码: case class Entity(e

我有定义某些实体结构的代码,例如:

case class EntityDefinition(id: UUID,
                            name: String,
                            propertyDefinitions: Map[String, PropertyDefinition] = Map.empty[String, PropertyDefinition])
我有以下实体代码:

case class Entity(entityDefinition: EntityDefinition, 
                  id: UUID, key: String, 
                  properties: Map[String, Property[Any]])
每个实体是否需要额外的内存来存储其entityDefinition实例?我打算将EntityDefinition的数量保持在非常低的水平,但每个定义都将占据相当大的空间


因此,问题是是否为实体保留此结构,还是实现某种引用,以便按需从缓存中获取实体定义?

如果共享实体定义,则只需为每个
实体计算一个对象引用。对象引用的大小为

如果共享实体定义,则只需为每个
实体
计算一个对象引用。对象引用的大小是

为什么您认为案例类在这方面不同于常规类?它将保留一个参考资料。只要有超过0个对对象的活动引用,对象本身就会被保存在内存中。这就是我所关心的——是否生成不可变的case类Scala以某种方式复制对象:-)为什么您认为case类在这方面不同于普通类?它将保留一个参考资料。只要有超过0个对对象的活动引用,对象本身就会保存在内存中