prometeu-runtime/docs/runtime/agendas/022-perf-cartridge-boot-and-program-ownership.md
2026-03-24 13:40:53 +00:00

2.1 KiB

Agenda - [PERF] Cartridge Boot and Program Ownership

Problema

O bootstrap do cart ainda faz copia desnecessaria de dados grandes e de metadados que poderiam ter ownership mais claro.

Hoje initialize_vm() clona program, title, app_version e entrypoint ao carregar o cart. Isso nao e o maior gargalo em steady-state, mas sinaliza que ownership de boot ainda esta frouxo.

Dor

  • reload, troca de cart e cenarios de tooling pagam custo desnecessario.
  • ownership frouxo no boot tende a reaparecer em hot-reload, debugger e loader.
  • em hardware pequeno, boot "barato" tambem importa.

Hotspots Atuais

Alvo da Discussao

Fechar um modelo de ownership de cart/programa que reduza copias sem comprometer simplicidade ou seguranca do runtime.

O Que Precisa Ser Definido

  1. Ownership do programa. Decidir se o bytecode:

    • e movido para a VM;
    • e compartilhado por Arc;
    • e mantido no cart com view emprestada.
  2. Ownership de metadata. Delimitar o que precisa ser copiado para estado corrente do runtime e o que pode ser referenciado.

  3. Ciclo de vida. Definir como ownership funciona em:

    • boot inicial;
    • troca de cart;
    • debugger/reload;
    • run-cart futuro.
  4. Meta de boot. Fechar qual custo de inicializacao e aceitavel para o baseline.

Open Questions de Arquitetura

  1. O projeto quer boot otimizado para trocas frequentes ou apenas para cold start?
  2. Existe risco real de aliasing/perigo de lifetime ao evitar copias aqui?
  3. Vale aceitar copia de metadata pequena e atacar so program?

Dependencias

  • ../specs/13-cartridge.md
  • ../specs/14-boot-profiles.md
  • 009-system-run-cart.md

Criterio de Saida Desta Agenda

Pode virar PR quando houver decisao escrita sobre:

  • ownership canonico de program;
  • politica de copia/referencia para metadata de cart;
  • comportamento em reload/troca de cart;
  • meta de custo para boot e reinicializacao.