WebAssembly (WASM) for High Performance Apps · Aula

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.

Aula 4 de 413 etapas

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.

Grátis para começar

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

  1. Modelo de componentes WASM e APIs futuras
  2. Ferramentas e ecossistema avançados do WASM
  3. Criando uma aplicação WASM completa
  4. Coleta de Lixo WASM e Tipos de Referência
← Voltar para WebAssembly (WASM) for High Performance Apps