文章

CPU优化

CPU优化

锁优化

目标:减少 CPU 空转

避免锁竞争

by lazy

使用 by lazy 时需要注意几个性能相关的点:

  1. 初始化成本:虽然延迟初始化可以推迟成本,但初始化时的开销仍然存在
  2. 内存占用:lazy 对象会持有初始化 lambda 的引用
  3. 多生成一个对象?
  4. 线程安全开销:默认的同步模式会有一定的性能开销

可以通过配置 lazy 的模式来优化性能:

1
2
3
4
private val value by lazy(LazyThreadSafetyMode.PUBLICATION) { 
    // 使用PUBLICATION模式可能会执行多次,但性能更好
    computeValue() 
}
本文由作者按照 CC BY 4.0 进行授权