Процедуры цифровой обработки сигналов в Node.js?

0

Я хотел бы иметь все преимущества Node.js для написания веб-приложений в моем распоряжении. Тем не менее, я знаю, что его модель не очень хороша для выполнения вычислительных интенсивных функций DSP. Я просматривал документацию и обнаружил, что на аддонах есть область.

Думаю, мой вопрос в том, что: если бы я написал свои функции DSP в C++ (или привел его откуда-то еще) и включил их в мое приложение Node.js, сколько из-за замедления я испытал бы? У меня создается впечатление, что, поскольку я звоню в общую библиотеку, я не должен испытывать замедление. Любое понимание этого было бы здорово.

  • 0
    Были ли у вас какие-либо мысли или вопросы по поводу моего ответа?
Теги:

1 ответ

0
Лучший ответ

Вам не нужно создавать двоичный аддон для взаимодействия с кодом C++. Возможно, вы могли бы превратить код C++ в инструмент командной строки?

Затем вы можете использовать модуль child_process в узле, чтобы создать процесс вашего DSP-инструмента и использовать какой-то IPC (межпроцессное общение), например, Unix-сокеты для связи между узлом и C++.

Таким образом, вы устраните необходимость в слишком большом количестве C++ клеевого кода.

Детский процесс: http://nodejs.org/api/child_process.html

Сеть (для сокетов): http://nodejs.org/api/net.html

Это будет только медленнее, чем ваши индивидуальные компоненты. Узел не будет блокироваться, ожидая данных из вашего C++, поэтому может делать другие вещи (отвечая на запросы HTTP и т.д.).

Еще один вариант для IPC - использовать библиотеку передачи сообщений, такую как zeromq.

привязки zeromq C++: http://zeromq.org/bindings:cpp

привязка узла zeromq: http://zeromq.org/bindings:node-js

  • 0
    Извините, что я так долго одобрял этот ответ. В конце концов я пошел с сокетом связи. Спасибо за предоставление более простых альтернатив!
  • 0
    @Paul не волнуйтесь, рад, что вы разобрались!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню