Skip to Content
WebAssembly: The Definitive Guide
book

WebAssembly: The Definitive Guide

by Brian Sletten
December 2021
Intermediate to advanced
332 pages
8h 36m
English
O'Reilly Media, Inc.
Book available
Content preview from WebAssembly: The Definitive Guide

Chapter 4. WebAssembly Memory

Perhaps one day this too will be pleasant to remember.

Virgil

If WebAssembly is going to behave like a regular runtime environment, it needs a way to allocate and free memory for its data-handling activities. In this chapter, we will introduce you to how it emulates this behavior for efficiency but without the risk of typical memory manipulation problems seen with languages like C and C++ (even if that is what we are running). As we are potentially downloading arbitrary code over the internet, this is an important safety consideration.

The entire concept of computation usually involves some form of data processing. Whether we are spell-checking a document, manipulating an image, doing machine learning, sequencing proteins, playing video games, watching movies, or simply crunching numbers in a spreadsheet, we are generally interacting with arbitrary blocks of data. One of the most crucial performance considerations in these systems is how to get the data where it needs to be in order to interrogate or transform it somehow.

Central Processing Units (CPUs) work the fastest when data is available in a register or an on-chip cache.1 Obviously these are very small containers, so large data sets are never going to be loaded onto the CPU in their entirety. We have to spend some effort moving data into and out of memory. The cost of waiting for the data to be loaded to one of these locations is an eternity in CPU clock time. This is one of the reasons they ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

gRPC: Up and Running

gRPC: Up and Running

Kasun Indrasiri, Danesh Kuruppu
Real-World Next.js

Real-World Next.js

Michele Riva
Microservices Patterns

Microservices Patterns

Chris Richardson

Publisher Resources

ISBN: 9781492089834Errata Page