98 lines
2.2 KiB
Markdown
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
|