CPU优化
CPU优化
锁优化
目标:减少 CPU 空转
避免锁竞争
by lazy
使用 by lazy
时需要注意几个性能相关的点:
- 初始化成本:虽然延迟初始化可以推迟成本,但初始化时的开销仍然存在
- 内存占用:lazy 对象会持有初始化 lambda 的引用
- 多生成一个对象?
- 线程安全开销:默认的同步模式会有一定的性能开销
可以通过配置 lazy 的模式来优化性能:
1
2
3
4
private val value by lazy(LazyThreadSafetyMode.PUBLICATION) {
// 使用PUBLICATION模式可能会执行多次,但性能更好
computeValue()
}
本文由作者按照 CC BY 4.0 进行授权