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
(memory 1 4)arranca en una página y topa en cuatro.memory.growsuma páginas y devuelve el conteo viejo, o -1.- Multiplicar
memory.sizepor 65536 pasa de páginas a bytes.
Palabras clave y builtins usados aquí
exportfunci32memorymoduleparamresult
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.
Paso 3 de 4 en Memoria; paso 18 de 28 en Fundamentos del lenguaje.