WebAssembly(Wasm) 인터프리터 Wasmi가 8개월간의 대대적인 엔진 개편을 거쳐 Wasmi 2.0으로 새롭게 출시되었습니다. 이번 업데이트는 실행 성능 향상에 초점을 맞춰, Apple M2 Pro 벤치마크에서 Wasmi 1.0 대비 평균 약 2.2배 빠른 속도를 달성했습니다. 동시에 Wasm 인터프리터의 핵심 강점 중 하나인 빠른 시작 속도는 그대로 유지하여, 다양한 환경에서 Wasm 기반 애플리케이션의 효율성을 크게 끌어올릴 것으로 예상됩니다.
Wasmi 2.0은 성능 개선을 위해 여러 기술적 혁신을 도입했습니다. 먼저, 다음 명령으로 넘어가는 과정을 '꼬리 호출(Tail Call)' 방식으로 변경하여 불필요한 스택 오버헤드를 줄였습니다. 또한, 계산 중간값을 하드웨어 레지스터에 직접 보관함으로써 반복적인 메모리 읽기/쓰기를 최소화했습니다. 객체 접근과 함수 호출 과정에서는 불필요한 조회와 잠금(lock)을 제거하면서도, 여러 인스턴스가 바이트코드를 공유하여 메모리 효율성을 유지하는 구조는 그대로 가져갔습니다. 특히, CPU의 분기 예측(branch prediction)을 방해하던 코드 생성 문제를 수정하여 CoreMark 점수를 약 50% 상승시키는 등 눈에 띄는 개선을 이뤄냈습니다.
이러한 성능 향상은 Wasmi가 활용되는 다양한 분야에 긍정적인 영향을 미칠 것입니다. Wasmi는 IoT 기기, 플러그인 시스템(예: Typst, Zellij), 클라우드 호스트, 스마트 계약(예: Soroban, Ripple), 경량 게임 콘솔(예: Firefly Zero) 등 광범위한 영역에서 사용될 수 있습니다. Wasmi 2.0의 빠른 실행 속도는 이러한 환경에서 Wasm 기반 애플리케이션의 응답성과 처리량을 개선하여 사용자 경험을 향상시키고, 개발자에게는 더욱 효율적인 개발 환경을 제공할 것입니다. 앞으로 Wasmi 3.0에서는 WebAssembly 3.0 전체 지원을 목표로 하고 있어, Wasm 생태계의 발전에도 지속적으로 기여할 것으로 기대됩니다.