Рубрики
Без рубрики

Бег ржавчины в Webassembly в бассейне одновременных веб-работников в JavaScript

Безумный эксперимент: распространение тяжелой задачи над бассейном веб-работников, которые называют библиотекой ржавчины, собранной для webassembly. Теги с ShowDev, JavaScript, WebDev, Rust.

Ваши ученые были настолько озабочены, могут ли они могли, что они не перестали думать, должны ли они.

Я хотел бы поделиться небольшим экспериментом, который я не сделал низауго, чем показать, что мог.

При этом доказательство концепции основное приложение начинает пул веб-работников, которые оно позже используется для разгрузки серии тяжелых задач.

Рассматриваемая задача заключается в том, чтобы сделать один кадр простой 3D-сцены с использованием Ray-Tracing (трассировка пути). Вычислительно интенсивный рендеринг выполняется A ржавчина Библиотека составлена для webassembly.

Это инструменты, которые я использовал:

  • Алесгенова/пост-я

    📩 Общаться с веб-работниками и другими окнами, используя простое API обещания

  • Алесгенова/Рэй-Трасер

    Простой двигатель луча

  • RUNTWASM/WASM-BINDGEN

    Улучшение взаимодействия высокого уровня между модулями WASM и JavaScript

  • Небольшая внутренняя очередь задач для отправки задач к работникам, когда доступно.
  • реагировать для скелета приложения.

Если вы хотите запустить этот безумие, экземпляр этого приложения развернут здесь Отказ

Если вы хотите увидеть подробную информацию о реализации, вы можете найти исходный код приложения на Гадость

Бонус

Используя аналогичный подход, я также создал приложение, которое может обнаружить высоту звуки, снятую микрофоном устройства.

Попробуйте это

  • Алесгенова/пост-я

    📩 Общаться с веб-работниками и другими окнами, используя простое API обещания

  • Алесгенова/обнаружение высоты высоты

    Коллекция алгоритмов для определения высоты звукового образца.

Оригинал: “https://dev.to/alesgenova/running-rust-in-webassembly-in-a-pool-of-concurrent-web-workers-in-javascript-51h9”