Skip to content

[P1][Performance] Medir e reduzir startup/workspace-open/primeiro efeito no caminho Agent→Runtime→Loop #325

Description

@wesleysimplicio

Parent: #315
Relacionada a #55 e à arquitetura de SharedRuntimeClient/Loop Hub.

Problema

AgentHost e Runtime são obrigatórios no modo produtivo; Loop Hub entra em workflows/waves. A arquitetura prevê sessão MCP compartilhada, mas não há benchmark live pós-beta.5 provando quantos processos, handshakes, mapas e conexões existem por workspace nem onde está o p95. Otimizar sem essa decomposição pode duplicar scheduler ou enfraquecer fail-closed.

Objetivo

Criar benchmark causal do caminho crítico e reduzir latência/CPU/RSS/I/O por reutilização segura de conexão, mapa e handles, preservando ownership e segurança.

Cenários

  • S0: Code UI/CLI baseline sem abrir workspace produtivo;
  • S1: Code + Agent + Runtime;
  • S2: S1 + Mapper/Fast warm;
  • S3: S2 + Loop Hub workflow;
  • cold start, warm start, restart e duas instâncias;
  • TUI/headless/ACP/workspace.

Métricas

  • processo pronto;
  • Agent handshake;
  • Runtime initialize/tools-list;
  • workspace open;
  • mapa parcial e completo;
  • primeira resposta/token quando observável;
  • primeiro tool progress;
  • primeiro efeito confirmado;
  • tarefa CRUD verde;
  • contagem de processes/handshakes/maps/connections;
  • cache hit/reuse;
  • CPU, peak RSS, I/O e tokens;
  • cancel/resume latency.

Caminho mais rápido

  1. Instrumentar timestamps causais existentes.
  2. Rodar workload CRUD determinístico ≥10 vezes.
  3. Atacar somente maior contribuição p95.
  4. Reusar sessão/mapa por workspace via dono canônico.
  5. Repetir benchmark após cada mudança.

Passo a passo

  1. Congelar hardware, SO, versions/SHAs e workload.
  2. Adicionar correlation IDs comuns sem conteúdo sensível.
  3. Capturar spans/timestamps nos boundaries Code, Agent, Runtime, Mapper/Fast e Hub.
  4. Criar runner cold/warm com limpeza explicitamente controlada.
  5. Rodar aquecimento e ≥10 repetições por cenário.
  6. Registrar valores brutos e agregados p50/p95; não remover outliers sem regra.
  7. Contar children, sockets/pipes, map builds e model/provider connections.
  8. Identificar duplicação por superfície/instância.
  9. Garantir um único owner para sessão/map/cache/scheduler.
  10. Implementar pooling/reuse bounded com invalidation por version/workspace/generation.
  11. Evitar startup síncrono de recursos não necessários ao primeiro prompt.
  12. Priorizar mapa parcial/background sem esconder failure.
  13. Testar restart, stale handle e generation mismatch.
  14. Comparar before/after com IC ou dispersão.
  15. Publicar relatório Markdown/CSV e receipt HBP.

Evidência para fechar

Dados brutos, ambiente, SHAs, gráficos/tabelas, profiles/traces redigidos, diff, receipts e análise de regressão.

Execução

  • Implementar o objetivo descrito.
  • Fazer a implantação aplicável.
  • Executar e registrar os testes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    Status
    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions