웹어셈블리 런타임 성능 분석: 암호화 워크로드 테스트 결과
Performance of WebAssembly Runtimes in 2026
Hacker News웹어셈블리(Wasm) 런타임의 성능을 암호화 작업으로 테스트한 결과, 전반적인 개선 추세가 확인되었으며 최신 Wasm 기능 지원이 핵심 동력임을 입증했습니다.
- 특히 `wide_arithmetic` 같은 고급 기능을 지원하는 경우, Wasmer와 Wasmtime 등 일부 런타임에서 네이티브 코드에 근접한 높은 성능 향상을 보여주었습니다.
- 따라서 CPU 집약적인 암호화 워크로드를 고려한다면, 단순히 런타임 이름보다 어떤 고급 기능(예: wide_arithmetic)을 지원하는지 확인해야 합니다.
- Wasm의 최종 성능은 런타임 자체뿐 아니라 활성화된 Wasm 기능과 AOT 컴파일 여부에 따라 결정되는 복합적인 문제입니다.
본 연구는 웹어셈블리 런타임의 성능 변화를 측정하기 위해 libsodium의 암호화 코드를 활용했습니다. 단순히 최신 버전이 네이티브 코드보다 우수한지 여부를 넘어, 동일한 C 암호화 코드를 WebAssembly로 컴파일하여 현재, 1년 전, 2년 전의 런타임에서 실행했을 때 실제 성능 개선 추세가 있는지 분석하는 것이 목적입니다. 이 테스트는 libsodium의 스위트를 기반으로 진행되었습니다.
전반적인 성능 향상 추세는 런타임마다 다르게 나타났습니다. 예를 들어, Wasmtime은 2024년 2.67배에서 2026년 2.41배로 꾸준히 개선되는 모습을 보였으며, Bun은 2025년 대비 2026년에 큰 폭의 성능 향상을 기록했습니다. 다만, `wide_arithmetic`과 같은 고급 WebAssembly 기능이 지원될 때 Wasmer와 Wasmtime에서 네이티브 코드에 근접한 가장 큰 속도 향상이 관찰되었습니다.
결론적으로 웹어셈블리 성능은 단일 요소로 결정되지 않습니다. 런타임 자체의 발전뿐만 아니라, 활성화된 WebAssembly 기능(예: `wide_arithmetic`) 지원 여부, 코드가 WASI를 통해 JavaScript에서 실행되는지, 그리고 AOT(Ahead-of-Time) 네이티브 컴파일이 가능한지에 따라 성능 차이가 크게 발생합니다. 따라서 실제 워크로드를 기반으로 벤치마킹하는 것이 중요합니다.
용어 풀이
- 벤치마크
- 모델 성능을 같은 조건에서 비교하려고 만든 시험 문제 모음.