Mind the Gap: Analyzing the Performance of WebAssembly vs. Native Code

01/25/2019
by   Abhinav Jangda, et al.
0

All major web browsers now support WebAssembly, a low-level bytecode intended to serve as a compilation target for code written in languages like C and C++. A key goal of WebAssembly is performance parity with native code; previous work reports near parity, with many applications compiled to WebAssembly running on average 10 suite of scientific kernels, each consisting of roughly 100 lines of code. Running more substantial applications was not possible because compiling code to WebAssembly is only part of the puzzle: standard Unix APIs are not available in the web browser environment. To address this challenge, we build BROWSIX-WASM, a significant extension to BROWSIX that, for the first time, makes it possible to run unmodified WebAssembly-compiled Unix applications directly inside the browser. We then use BROWSIX-WASM to conduct the first large-scale evaluation of the performance of WebAssembly vs. native. Across the SPEC CPU suite of benchmarks, we find a substantial performance gap: applications compiled to WebAssembly run slower by an average of 50 to 89 identify the causes of this performance degradation, some of which are due to missing optimizations and code generation issues, while others are inherent to the WebAssembly platform.

READ FULL TEXT

page 3

page 6

page 8

page 9

page 11

research
01/25/2019

Not So Fast: Analyzing the Performance of WebAssembly vs. Native Code

All major web browsers now support WebAssembly, a low-level bytecode int...
research
11/23/2016

Browsix: Bridging the Gap Between Unix and the Browser

Applications written to run on conventional operating systems typically ...
research
07/01/2022

High-Performance GPU-to-CPU Transpilation and Optimization via High-Level Parallel Constructs

While parallelism remains the main source of performance, architectural ...
research
07/22/2018

Taint Tracking for WebAssembly

WebAssembly seeks to provide an alternative to running large and untrust...
research
11/22/2021

Bilingual Problems: Studying the Security Risks Incurred by Native Extensions in Scripting Languages

Scripting languages are continuously gaining popularity due to their eas...
research
08/16/2023

Continuing WebAssembly with Effect Handlers

WebAssembly (Wasm) is a low-level portable code format offering near nat...
research
05/22/2018

Compiling with Continuations and LLVM

LLVM is an infrastructure for code generation and low-level optimization...

Please sign up or login with your details

Forgot password? Click here to reset