WebAssembly: TinyGO vs Rust vs AssemblyScript
(ecostack.dev)- 브라우저에서 복잡한 작업을 위해 WASM을 쓴다면 어떤 언어가 가장 빠를까 ?
- 10만개의 랜덤값을 가진 어레이를 500번 복사해서 정렬하는 코드로 속도 비교
- 결과적으로는 Rust가 가장 메모리를 적게 사용하며 속도가 빠름 (JS보다 20배 쯤)
- 런타임 속도 : Rust (2982ms) > AssemblyScript(6405ms) > Go(9717ms) > JavaScript(68720ms)
- 파일 크기 : JavaScript (1.3kb) > AssemblyScript(4.7kb) > Go(37.0kb) > Rust (74.0kb)
- 파일 사이즈도 같이 고려 대상이라면 AssemblyScript도 괜찮음(Rust에 비해 두배 정도 느리지만, JS보다는 10배 빠름)
- Rust 런타임은 크롬에서 가장 빨랐음. JavaScript는 Firefox가 크롬보다 3배이상 빠름
자바스크립트에게 불리한 비교였다고 생각됩니다.
배열을 만드는데 사용한 자료형이 다릅니다.
자바스크립트는 숫자형이 64비트 부동소수점형식인데, 나머지 언어들은 32비트 정수형을 사용했습니다.