typestar

memory.size y memory.grow en WebAssembly

La memoria se cuenta en páginas de 64 KiB, y crece en runtime.

(module
  ;; Memory is measured in 64 KiB pages. size reports the current
  ;; count; grow adds pages and returns the old count, or -1.
  (memory 1 4)

  (func (export "pages_now") (result i32)
    memory.size)

  (func (export "add_pages") (param $n i32) (result i32)
    (memory.grow (local.get $n)))

  (func (export "bytes_available") (result i32)
    (i32.mul memory.size (i32.const 65536))))

Cómo funciona

  1. (memory 1 4) arranca en una página y topa en cuatro.
  2. memory.grow suma páginas y devuelve el conteo viejo, o -1.
  3. Multiplicar memory.size por 65536 pasa de páginas a bytes.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
13
Caracteres a escribir
373
Tokens
69
Ritmo de tres estrellas
65 tpm

Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 64 segundos.

Escribe este fragmento

Paso 3 de 4 en Memoria; paso 18 de 28 en Fundamentos del lenguaje.

← Anterior Siguiente →