Coleta de Lixo WASM e Tipos de Referência
Explore as propostas WasmGC e reference-types, que permitem que linguagens gerenciadas tenham como alvo o WebAssembly sem incluir sua própria heap.
Coleta de Lixo WASM e Tipos de Referência é uma aula grátis de WebAssembly (WASM) for High Performance Apps no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de WebAssembly (WASM) for High Performance Apps, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de WebAssembly (WASM) for High Performance Apps inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
Why WASM Needed GC
Early WASM had only linear memory, forcing managed languages (Java, Kotlin, C#, Dart) to ship their own garbage collector compiled to WASM — bloating binaries.
The Reference Types Proposal
Reference types add opaque references like externref and funcref that the engine manages, instead of stuffing everything into linear memory.
externref Explained
externref lets WASM hold a handle to a host (JS) object without serializing it into memory — passed by reference, managed by the host GC.
(func (param externref) (result externref)
local.get 0)WasmGC Heap Types
WasmGC introduces engine-managed struct and array heap types. The browser GC reclaims them, so languages reuse the existing collector.
Smaller, Faster Binaries
By dropping a bundled collector, WasmGC languages produce much smaller modules and integrate cleanly with the host GC for cyclic references across boundaries.
Defining a Struct Type
WasmGC lets you declare typed structs the engine allocates and collects.
(type $point (struct (field $x f64) (field $y f64)))Languages Adopting It
Kotlin/Wasm, Dart, Java (via projects like TeaVM), and Scala targets are moving to WasmGC to run efficiently in browsers.
Interaction with JS
With reference types, passing a DOM node or callback to WASM no longer needs an integer handle table — the reference is held directly.
Limits of WasmGC
WasmGC is not a general object model; it offers low-level GC-managed structs/arrays. Language runtimes still build their own object layouts on top.
Migration Considerations
Existing linear-memory modules keep working; WasmGC is additive. Toolchains opt in, and engines without support fall back or refuse the module.
The Road Ahead
Combined with the Component Model, WasmGC moves WASM toward being a universal, high-level compile target for nearly any language.
Quick Check
What problem does WasmGC primarily solve for managed languages?
Recap
You explored reference types (externref/funcref) and WasmGC heap types. Together they let managed languages target WASM without a bundled collector, producing smaller binaries and seamless host-object interop — a key part of WASM future.
Aprenda WebAssembly (WASM) for High Performance Apps com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 12
- Aulas
- 48
Perguntas Frequentes
A aula “Coleta de Lixo WASM e Tipos de Referência” é grátis?
Sim — o texto completo de “Coleta de Lixo WASM e Tipos de Referência” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de WebAssembly (WASM) for High Performance Apps, atualize para CoddyKit PRO. O curso de WebAssembly (WASM) for High Performance Apps inclui 4 aulas no total.
O que vou aprender em “Coleta de Lixo WASM e Tipos de Referência”?
Explore as propostas WasmGC e reference-types, que permitem que linguagens gerenciadas tenham como alvo o WebAssembly sem incluir sua própria heap. Você pratica WebAssembly (WASM) for High Performance Apps com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar WebAssembly (WASM) for High Performance Apps?
Nenhuma experiência prévia é necessária. WebAssembly (WASM) for High Performance Apps no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Coleta de Lixo WASM e Tipos de Referência”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de WebAssembly (WASM) for High Performance Apps?
Sim. Cada aula de WebAssembly (WASM) for High Performance Apps inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Modelo de componentes WASM e APIs futuras
- Ferramentas e ecossistema avançados do WASM
- Criando uma aplicação WASM completa
- Coleta de Lixo WASM e Tipos de Referência