Запуск NGXS / NGRX с высокой частотой кадров для Interval Loop - PullRequest
0 голосов
/ 12 июля 2020

У меня есть приложение, которое запускает обнаружение объектов на видео с веб-камеры.

Я не знаю, сколько накладных расходов NGXS / NGRX имеет для такого типа операции infinite-l oop, если таковая имеется, и Интересно, как лучше всего это сделать.

Один из способов выполнить это обнаружение с сокращением:

  1. Настроить магазин под названием detections с интерфейс: {detections: [number, number, number, number][]}

  2. Из компонента webcam вызов store.dispatch(new DetectObjects(videoElement))

  3. В хранилище detections поймайте это и исправьте состояние с новыми обнаружениями:

    patchState({detections: this.service.detect(videoElement)})

Другой способ - непосредственно из webcam компонента, запускающего this.detections = this.service.detect(videoElement), и передавать обнаружения через Input дочернему angular компоненту.

Первый способ имеет больше смысла для приложения, так как я могу слушать detections из любого места, где захочу, и не увязнуть в цепочках Input. Второй способ гарантированно будет быстрее, потому что в нем меньше движущихся частей.

Редактировать

Добавляя фиктивный прогноз к l oop, я получаю 190 кадров в секунду по сравнению с 195 кадрами в секунду без чего-либо в l oop, поэтому я думаю, что можно с уверенностью сказать, что модификации минимальны. *

...