[中] Mac 每次设置变化都重读 motion.json 并重算同步
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 22/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- swift
- Ambito
- performance
Direzione di ricerca
Read Sources/BirdLockCore/Render/RenderJob.swift around lines 90-113 first to see that init loads motion.json and recomputes composePlan/corrections on every construction, then Sources/BirdLockCore/Render/VideoStabilization.swift:393 for the ~201-offset synchronize scan. Next read the debounced rebuildJob in Sources/BirdLockApp/AppState.swift:509-527 and the export path at :1025 to confirm rebuildWork?.cancel() cannot stop work already started and that the export builds a RenderJob on the MainActor. Done means one in-flight build task with an early cancellation check inside the work item, a cache keyed on analysis.fingerprint plus stabilization settings, and detached export construction, verified by dragging sliders and watching CPU. Static audit only; nothing reproduced on device yet.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
位置:Sources/BirdLockCore/Render/RenderJob.swift:90-113;Sources/BirdLockCore/Render/VideoStabilization.swift:393;Sources/BirdLockApp/AppState.swift:509-527、:1025
现象:RenderJob.init 每次都读取 motion.json、重算 composePlan/corrections(其中 synchronize 会扫描约 201 个偏移)并调用 VideoSource.arrange。rebuildJob 在每次设置变化时以 60 ms 防抖重建,但 rebuildWork?.cancel() 只取消尚未执行的 DispatchWorkItem,已开始的重活无法停止。AppState.export 还会在 MainActor 上同步构造 RenderJob。
复现:打开带陀螺仪的视频工程,快速拖动设置滑块,观察 CPU 与主线程卡顿。
建议:只保留一个在跑的构建任务并在 work 内先检查取消;按 analysis.fingerprint + 稳定化设置 缓存 motion 与同步结果;把导出用的构造移入 Task.detached。
来源:2026-11-15 全仓只读审计,PR #7 未包含此项。 未在实机复现(静态审计)。
- Lingua principale
- Swift
- Stelle
- 2
- Fork
- 2
- Merge medio
- 1h 11m
- PR unite (30g)
- 2
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di cyandee/BirdLock
-
Difficoltà 2/5 Meno di un'ora Idoneità per principianti 62/100
-
[低] 1.9.0 更新说明审阅稿与正式说明完全重复Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 80/100
-
[低] FrameXform.valid 只写不读Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 86/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100