Преимущества WebAssembly для AudioWorklet - PullRequest
0 голосов
/ 01 ноября 2018

Цитируется из этой статьи: https://developers.google.com/web/updates/2018/06/audio-worklet-design-pattern

WebAssembly - идеальный компаньон для AudioWorkletProcessor. Комбинация этих двух функций дает множество преимуществ для обработки аудио в сети, но два самых больших преимущества: а) внесение существующего кода обработки звука C / C ++ в экосистему WebAudio и б) , исключая издержки JS JIT-компиляция и сборка мусора в коде обработки аудио.

Мне интересно, какие реальные преимущества использования WebAssembly здесь. WebAssembly избегает сбора мусора вообще? Это перевешивает снижение производительности, которое WebAssembly сравнило с нативным Javascript?

1 Ответ

0 голосов
/ 02 ноября 2018

Вообще ли WebAssembly избегает сборки мусора?

Правильно, в WebAssembly нет сборщика мусора. Сам по себе WebAssembly является целью компиляции, поэтому в настоящее время проще всего скомпилировать языки без сборки мусора в WebAssembly, например C / C ++, Rust, Go.

Это перевешивает снижение производительности, которое WebAssembly сравнило с нативным Javascript?

Не уверен, что вы имеете в виду здесь? WebAssembly работает быстрее, более предсказуемо и загружается быстрее, чем его аналог JavaScript. Посмотрите, например, как WebAssembly делает алгоритмы исходной карты примерно в 3 раза быстрее:

https://medium.com/@JevanChan/speed-up-source-map-generation-with-webassembly-google-summer-of-code-2018-e67407ed2e49

WebAssembly особенно хорош для алгоритмического кода, поэтому он отлично подходит для обработки аудио.

...