[Suggestion]: idle live roots wake every 25 ms; notify-debouncer-full fixed this on main (notify #933)
I maintainer di solito rispondono entro 3 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 45/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- rust
- Ambito
- performance
Direzione di ricerca
Start with crates/fff-core/src/watcher/background_watcher.rs at the debounce timeout setup, then inspect the vendored fff-notify-debouncer-full loop described in the issue. Compare notify-rs PR #933 with the current fork and decide whether to port only that change or track upstream main; the thread asks maintainers to agree on the approach. Done means idle roots stop polling while debounce timing stays unchanged, with a test counting idle loop iterations.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
I am a user of fff-search. I measured idle watcher cost on macOS with fff-search 0.11.0 (mode: Ai, watch: true, off-screen probe): each idle live root uses about 0.45 ms CPU/s and about 33 interrupt wakeups/s; three roots about 100 wakeups/s; no root 0.
The cause is the debouncer thread: fff-notify-debouncer-full 0.9.4 runs loop { thread::sleep(tick); debounced_events() } (src/lib.rs:765 of that crate), with tick = DEBOUNCE_TIMEOUT / 2 = 25 ms (crates/fff-core/src/watcher/background_watcher.rs:195-197). It never waits for events, so an idle root wakes about 40 times a second.
Upstream already has the fix: notify-rs PR #933 (merged 2026-06-01, https://github.com/notify-rs/notify/pull/933) adds a Condvar so the loop sleeps until events are queued, then keeps the same tick until they expire. Debounce timing is unchanged. It is not in a crates.io release yet, and fff-notify-debouncer-full 0.9.4 predates it.
Proposal: bring that change into fff-notify-debouncer-full, with a test that counts idle loop iterations. No public API change. I can open the PR only after you agree on the approach. Should the fork track notify-debouncer-full main, or take only #933?
- Lingua principale
- Rust
- Stelle
- 11.2k
- Fork
- 473
- Merge medio
- 2g 7h
- PR unite (30g)
- 32
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 dmtrKovalenko/fff
-
triaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
dmtrKovalenko/fff#842 · 2 commenti ·
I maintainer di solito rispondono entro 3 giorni
-
triaged
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
dmtrKovalenko/fff#980 · 1 commento ·
I maintainer di solito rispondono entro 3 giorni
-
[Bug]: OSX/xcode 27 dyld wants 8-byte aligned string pools - mis-aligned LINKEDIT string poolForse già presa @gustav-fff l’ha presa 1 giorno fa. Apertabug triaged
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
dmtrKovalenko/fff#978 · 1 commento ·
I maintainer di solito rispondono entro 3 giorni
-
[Bug]: pi-fff blocks session startup while indexing filesForse già presa @adonis0147 l’ha presa 1 giorno fa. Apertaduplicate triaged
Difficoltà 3/5 1-2 giorni Idoneità per principianti 70/100
dmtrKovalenko/fff#975 · 1 commento ·
I maintainer di solito rispondono entro 3 giorni
-
[Bug]: on a non-git base path, the watcher indexes new files in hidden folders that the scan skips (0.11.0)Forse già presa @gustav-fff l’ha presa 4 giorni fa. Apertatriaged
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
dmtrKovalenko/fff#972 · 2 commenti ·
I maintainer di solito rispondono entro 3 giorni
Tutte le issue di dmtrKovalenko/fff
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
Y-ASLant/ElegantClipboard#178 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
linxiv-dev/linXiv#384 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug drawings ui
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
userFRM/egui-charts#1595 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
smoltcp-rs/smoltcp#1235 ·
I maintainer di solito rispondono entro 1 giorno
-
scope:core type:security
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno