json - SwiftUI - 结合更新@Published 性能缓慢
问题描述
我正在使用 SwiftyJson 对象来存储我的所有数据。所有 json 都在应用程序的开头加载,它是一个 137ko 文件(约 4000 行)。我的项目中有以下课程:
final class JSONManager: ObservableObject {
static let shared = JSONManager()
@Published var globalState: JSON!
}
我在我拥有的几乎每个 SwiftUI 视图模型中都使用了这个 globalState。我JSONManager.shared.$globalState.sink {...}
在所有视图模型的 init 方法中使用。问题是当我想更新 globalState 的值时性能很慢。例如:
let timer = ParkBenchTimer()
let newState = JSONManager.shared.globalState.updateValue(textInputData.valuePath, JSON(text))
timer.start()
JSONManager.shared.globalState = newState
print("Time elapsed \(timer.stop())") // Time elapsed 0.4281100034713745
我尝试创建第二个 globalState 变量,其中我只有 1 个订阅者,当我更新它时,我有 // Time elapsed 0.017634987831115723
很多但不再冻结屏幕。
你有什么想法为什么会发生,我应该改变什么来减少更新时间?感谢您的回答!
解决方案
推荐阅读
- xml - 从 XML 标记中提取整数值
- java - Java Scheduler 从上午 9.30 开始,每 15 分钟运行一次,在晚上 8 点结束
- c# - 如何在 Blazor 剃须刀页面的标签上获取“显示名称”?
- database - 聚合股票实时数据,生成平均价格并将其保存在数据库中
- pandas - 多索引连接,列名
- sql - 如何用每列的多行转置使列不同的值
- java - Oracle DB EE 19c/18c 的基本安装异常
- c++ - 绑定和提升功能
- jquery - AJAX 内容更新后在 Magento 2 中刷新 jquery 和淘汰赛绑定和观察者
- css - 位于具有相同宽度的图像上方的 div 周围的暗线