Files
flywms/aggiornamento-2026-05-18-18-30.md
2026-05-19 08:52:44 +02:00

68 lines
2.2 KiB
Markdown

# Aggiornamento 2026-05-18 18:30
## Obiettivo
Registrare in un file dedicato le tempistiche dettagliate della pipeline, riducendo allo stesso tempo il costo della preview principale spostando la telemetria fuori dall'overlay.
## Modifiche
- Aggiunta classe `PerfLogWriter` in [flywms_navigation.py](C:/devel/flywms/flywms_navigation.py) con:
- bufferizzazione in memoria
- flush periodico a tempo
- flush per numero di righe
- Nuovi parametri INI/CLI:
- `perf_log_path`
- `perf_log_flush_interval_sec`
- `perf_log_flush_lines`
- Il file di default e' `tempistiche.txt`.
- Per ogni frame vengono scritte colonne TSV con:
- `read_ms`
- `yolo_ms`
- `track_ms`
- `draw_ms`
- `ui_ms`
- `snapshot_pause_ms`
- `wms_wait_ms`
- `loop_ms`
- `loop_fps`
- `yolo_real_fps`
- conteggi oggetti/track/snapshot
- ultimo comando navigazione
- La finestra principale `flywms navigate` non disegna piu':
- riga FPS/metriche
- ultimo comando
- testo sopra i bbox dei gaylord
- testo sopra i bbox etichetta
- Restano nella preview principale:
- bbox
- centri
- fascia utile
- freccia di movimento simulato
- Aggiornata anche [flywms_navigation_gui.py](C:/devel/flywms/flywms_navigation_gui.py) per il nuovo renderer alleggerito e per il costruttore `UltralyticsDetector(..., yolo_half)`.
## Verifica
Compilazione:
```powershell
python -m py_compile flywms_navigation.py flywms_navigation_gui.py
```
Run di test:
```powershell
python flywms_navigation.py --no-display --max-frames 20 --perf-log-path tempistiche-test.txt
```
Prime righe del log:
```text
ts frame_id run_yolo read_ms yolo_ms track_ms draw_ms ui_ms snapshot_pause_ms wms_wait_ms loop_ms loop_fps yolo_real_fps src_fps preview_target yolo_target det labels tracks active snapshots command
2026-05-18 18:31:14 1 1 39.710 10065.399 0.106 0.000 0.000 0.000 0.000 10150.452 0.099 0.099 30.0 24.0 15.0 2 2 2 2 0 ""
2026-05-18 18:31:14 2 1 7.376 38.036 0.222 0.000 0.000 0.000 0.000 47.984 0.196 0.196 30.0 24.0 15.0 2 2 2 2 0 ""
```
## Nota
Nel test headless `draw_ms` e `ui_ms` sono giustamente nulli. Nel run reale con finestre aperte il file `tempistiche.txt` mostrera' il costo della parte grafica e delle pause simulate, che e' proprio quello che ci serve per capire dove si perde il target FPS.