Combine 的 getter 访问可能比你想象的要慢.....
下午遇到了一个高频访问 Combine getter 的性能陷阱,了解了一下才知道 Combine 的 getter 内部实现是有其他 side effect 在的。不同于 Kotlin StateFlow 可以直接读取线程安全的 value 属性值,Combine 并没有实现一个存储数据流 state 的实现。
对于我们常用的 ObservableObject + Publisher,在高频访问+低频写入的场景下还是建议优化成普通的 var + objectWillChange 手动 send。