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个对对象的活动引用,对象本身就会保存在内存中