2.2 KiB
2.2 KiB
Aggiornamento 2026-05-18 19:58
Analisi benchmark
File analizzato:
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_idnumerico.
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 stotal_pause_s = 552.03 stotal_wms_s = 690.03 stotal_active_s = 762.13 s
Interpretazione:
- Le pause snapshot headless valgono circa
8.0 sciascuna. - L'attesa WMS simulata headless vale circa
10.0 sper 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.97active_yolo_fps = 12.69
Tempi medi in regime stabile:
mean_loop_ms = 36.90mean_read_ms = 6.10mean_yolo_ms = 31.20mean_track_ms = 0.18mean_draw_ms = 0.00mean_ui_ms = 0.00
Percentili:
loop_p50 = 33.91 msloop_p90 = 68.93 msloop_p95 = 73.14 msyolo_p50 = 27.85 msyolo_p90 = 38.05 msyolo_p95 = 46.10 ms
Confronto con la demo OpenCV
Run demo precedente:
demo_active_s = 1092.85 sdemo_draw_ui_s = 597.18 s
Run benchmark:
benchmark_active_s = 762.13 sbenchmark_draw_ui_s = 0
Risparmio netto:
active_s_saved = 330.72 scirca5.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