要解决的问题
metadataCache 是 ProcessSnapshotProvider 实例变量。如果 MonitorViewModel 重建了 ProcessSnapshotProvider 实例(如 viewModel 重载),cache 全丢,macOS 系统进程 PID 也会重新大量触发 NSRunningApplication 查询。
建议方案
将 ProcessSnapshotProvider 本身设计为全局单例 actor,或将 metadataCache 提取为独立 actor MetadataCache,在 App 生命周期内持久化。
要解决的问题
metadataCache是ProcessSnapshotProvider实例变量。如果MonitorViewModel重建了ProcessSnapshotProvider实例(如 viewModel 重载),cache 全丢,macOS 系统进程 PID 也会重新大量触发NSRunningApplication查询。建议方案
将
ProcessSnapshotProvider本身设计为全局单例 actor,或将metadataCache提取为独立actor MetadataCache,在 App 生命周期内持久化。