Litcius/Paper detail

How Far We’ve Come – A Characterization Study of Standalone WebAssembly Runtimes

Wenwen Wang

202227 citationsDOI

Abstract

WebAssembly was originally created to facilitate the deployment of non-web applications on web platforms. Because of its high speed, safety, portability, and language independence, WebAssembly is increasingly adopted outside the web. This is generally enabled by standalone WebAssembly runtimes, which are dedicated to running WebAssembly binary code without web browsers. However, the characteristics of existing standalone WebAssembly runtimes are not clear due to the limited study in academia. To fill up this knowledge gap, we conduct a comprehensive characterization study of standalone WebAssembly runtimes in this paper. Our study covers five predominant standalone WebAssembly runtimes. Besides, we also construct a benchmark suite for the study, named WABench, which contains not only benchmark programs from existing mature benchmark suites but also whole applications from various application domains. Our study reveals several interesting findings. For example, we find that all studied runtimes introduce an average of $1.59\times - 9.57\times $ performance slowdown when running WebAssembly binaries compared to native executions, meaning that effective yet low-cost dynamic optimizations are needed. We also observe that standalone WebAssembly runtimes can make significant architectural impacts, e.g., more branch prediction misses and higher cache pressure. We hope our study can pave the way for expanding WebAssembly to more broad non-web domains.

Topics & Concepts

Benchmark (surveying)Computer scienceSoftware portabilitySpec#SuiteCode (set theory)Operating systemParallel computingProgramming languageGeodesyGeographySet (abstract data type)ArchaeologyHistoryAdvancements in Photolithography TechniquesDiamond and Carbon-based Materials ResearchParallel Computing and Optimization Techniques
How Far We’ve Come – A Characterization Study of Standalone WebAssembly Runtimes | Litcius