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

98 lines
2.2 KiB
Markdown

# Aggiornamento 2026-05-18 19:58
## Analisi benchmark
File analizzato:
- [tempistiche-benchmark.txt](C:/devel/flywms/tempistiche-benchmark.txt)
Nota metodologica:
- Il file conteneva due intestazioni (`ts ...`) perche' un run breve di verifica era stato appeso al run completo.
- L'analisi e' stata fatta filtrando solo le righe con `frame_id` numerico.
## Risultati principali
- Frame validi: `19789`
- Snapshot: `69`
- Video sorgente: `30.0 fps`
- Durata nominale video: circa `658.3 s` = `10.97 min`
Benchmark completo:
- `total_loop_s = 2004.19 s`
- `total_pause_s = 552.03 s`
- `total_wms_s = 690.03 s`
- `total_active_s = 762.13 s`
Interpretazione:
- Le pause snapshot headless valgono circa `8.0 s` ciascuna.
- L'attesa WMS simulata headless vale circa `10.0 s` per snapshot.
- Quindi il benchmark completo include ancora il comportamento demo di snapshot+attesa, solo senza finestre.
## Prestazioni nette della pipeline
Togliendo pause snapshot e attesa WMS:
- `active_fps = 25.97`
- `active_yolo_fps = 12.69`
Tempi medi in regime stabile:
- `mean_loop_ms = 36.90`
- `mean_read_ms = 6.10`
- `mean_yolo_ms = 31.20`
- `mean_track_ms = 0.18`
- `mean_draw_ms = 0.00`
- `mean_ui_ms = 0.00`
Percentili:
- `loop_p50 = 33.91 ms`
- `loop_p90 = 68.93 ms`
- `loop_p95 = 73.14 ms`
- `yolo_p50 = 27.85 ms`
- `yolo_p90 = 38.05 ms`
- `yolo_p95 = 46.10 ms`
## Confronto con la demo OpenCV
Run demo precedente:
- `demo_active_s = 1092.85 s`
- `demo_draw_ui_s = 597.18 s`
Run benchmark:
- `benchmark_active_s = 762.13 s`
- `benchmark_draw_ui_s = 0`
Risparmio netto:
- `active_s_saved = 330.72 s` circa `5.51 min`
## Conclusione
La UI OpenCV pesava davvero molto, ma non era l'unico problema.
Tolte completamente le finestre:
- la pipeline netta scende a circa `12.70 min`
- il video reale dura circa `10.97 min`
Residuo rispetto all'obiettivo netto:
- circa `103.8 s` = `1.73 min`
Questa parte residua dipende principalmente da:
- inferenza YOLO ancora sotto il target di `15 fps`
- costo di `cap.read()`
- scheduling single-thread del loop
Quindi:
- la demo con interfaccia va ripensata per non ricadere nel costo UI attuale
- la pipeline core, senza UI, e' ormai abbastanza vicina all'obiettivo ma non ancora coincidente con la durata del video