Ваши ученые были настолько озабочены, могут ли они могли, что они не перестали думать, должны ли они.
Я хотел бы поделиться небольшим экспериментом, который я не сделал низауго, чем показать, что мог.
При этом доказательство концепции основное приложение начинает пул веб-работников, которые оно позже используется для разгрузки серии тяжелых задач.
Рассматриваемая задача заключается в том, чтобы сделать один кадр простой 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”