Юрий Карпов
Компания: Сбер
Цель доклада — определить, на каком языке лучше писать для WebAssembly, сравнивая скорость исполнения и удобство написания кода.
Сегодня существует множество языков, поддерживающих компиляцию в .wasm
. Рассмотрим основные: C, Rust, Go и AssemblyScript. Для измерения производительности напишем несколько примеров, таких как размытие изображения по Гауссу, пороговое изображение (Threshold), быстрая сортировка (quicksort) и другие кейсы.
У меня есть старый доклад, в котором я сравнивал производительность WebAssembly, написанного на C/C++ и Go, с JavaScript и JavaScript с WebWorkers на примере размытия по Гауссу. Код, написанный на Go, значительно уступал в производительности всем остальным, включая однопоточный JavaScript (благодаря JIT-компиляции).
В ходе периодической перепроверки информации моих докладов я заметил, что появилась поддержка Go в хост-среде Wasmer, что увеличило производительность WebAssembly на Go в 72 раза. Это подтолкнуло меня пересмотреть и обновить материал и подготовить новый доклад на эту тему.
После доклада вы получите четкое представление о том, какие языки выбрать для написания небольших высокопроизводительных модулей на WebAssembly.
Компания: Сбер
Компания: VK