给定一个特征,该特征包含一个具有大量实例(100 个文件,每 100 行)存储在非惰性 val 中的对象
trait Repository {
object dao {
val a = new A
val b = new B
val c = new C
...
}
}
初始化成本是多少?假设有 100 个存储库消费者,每个 DAO 实例一个(即“对象 X 扩展存储库”*100)。对象 X、Y、Z 消费者会各自产生 100 个 DAO 实例的开销吗?
鉴于存储库消费者只需要引用 DAO 实例的子集,我正在考虑采用惰性初始化方法,但试图了解惰性初始化成本与非惰性初始化成本之间的权衡。
如果在 JVM 容器启动时,所有 100 个 DAO 实例都被初始化,那么非延迟方法将避免延迟初始化的不必要开销。但是,如果为每个 Repository 消费者创建 100 个 DAO 实例,最好是偷懒并减少内存使用。