Insights into WebAssembly: Compilation performance and shared code caching in node.js

Abstract

Alongside JavaScript, V8 and Node.js have become essential components of contemporary web and cloud applications. With the addition of WebAssembly to the web, developers finally have a fast platform for performance-critical code. However, this addition also introduces new challenges to client and server applications. New application architectures, such as serverless computing, require instantaneous performance without long startup times. In this paper, we investigate the performance of WebAssembly compilation in V8 and Node.js, and present the design and implementation of a multi-process shared code cache for Node.js applications. We demonstrate how such a cache can significantly increase application performance, and reduce application startup time, CPU usage, and memory footprint.

Citation

Nießen, T., Dawson, M., Patros, P., & Kent, K. B. (2020). Insights into WebAssembly: Compilation performance and shared code caching in node.js. In Proc 30th Annual International Conference on Computer Science and Software Engineering (CASCON 2020) (pp. 163–172). Toronto, Ontario, Canada. https://doi.org/10.5555/3432601.3432623

Series name

Date

Publisher

ACM

Degree

Type of thesis

Supervisor