У меня есть приложение, которое запускает обнаружение объектов на видео с веб-камеры.
Я не знаю, сколько накладных расходов NGXS / NGRX имеет для такого типа операции infinite-l oop, если таковая имеется, и Интересно, как лучше всего это сделать.
Один из способов выполнить это обнаружение с сокращением:
Настроить магазин под названием detections
с интерфейс: {detections: [number, number, number, number][]}
Из компонента webcam
вызов store.dispatch(new DetectObjects(videoElement))
В хранилище detections
поймайте это и исправьте состояние с новыми обнаружениями:
patchState({detections: this.service.detect(videoElement)})
Другой способ - непосредственно из webcam
компонента, запускающего this.detections = this.service.detect(videoElement)
, и передавать обнаружения через Input
дочернему angular компоненту.
Первый способ имеет больше смысла для приложения, так как я могу слушать detections
из любого места, где захочу, и не увязнуть в цепочках Input
. Второй способ гарантированно будет быстрее, потому что в нем меньше движущихся частей.
Редактировать
Добавляя фиктивный прогноз к l oop, я получаю 190 кадров в секунду по сравнению с 195 кадрами в секунду без чего-либо в l oop, поэтому я думаю, что можно с уверенностью сказать, что модификации минимальны. *