flowral.docs

Performance — orçamento e protocolo de medição

Meta

<= 300 MiB RAM em repouso (não MB decimais) na sessão real, alvo a validar — especialmente difícil com compositor Wayland + serviços de rede/áudio + painéis. Nunca declarar sucesso sem medição reprodutível.

Estados de referência

Perfil Processos
tty-baseline boot e serviço de rede essencial, sem compositor
desktop-idle login, Swirl, shell/painéis, rede, áudio, power e notificações
desktop-offline mesmo stack sem rede externa, mantendo serviço
daily-apps + WezTerm + PCManFM
agents-idle painel de agentes fechado; nenhuma instância órfã de agents/providers/MCPs
load 5+ janelas, tema aplicado, streaming ACP e áudio

Valor principal do projeto = desktop-idle. A meta de 300 MiB não inclui LibreWolf/WezTerm/Agents abertos, mas inclui todos os serviços essenciais habilitados por padrão.

Protocolo

  1. Boot limpo no E430; esperar 2–3 minutos após login, sem abrir app.
  2. Repetir 5 boots com rede conectada, sem autoupdate, hardware e tela documentados.
  3. Capturar: free -m, /proc/meminfo (MemAvailable, MemTotal), ps -eo pid,comm,rss --sort=-rss, smem -tk ou ps_mem para PSS.
  4. Registrar memória usada com definição explícita (MemTotal - MemAvailable, páginas, cache, buffers) e PSS por processo; RSS somado não equivale à memória total.
  5. Capturar CPU idle, wakeups quando possível, tempo de boot, tempo de troca de tema, FPS/latência da UI, disco e bateria.
  6. Reportar mediana, intervalo min–max e variabilidade. Publicar procedimento e logs sem identidades.

Orçamentos

  • Meta global: 300 MiB; não dividir em cotas inventadas sem observação empírica.
  • Capacidade da GPU varia, portanto blur dinâmico não é pré-requisito.
  • Themes engine = 0 processo residente após aplicar.
  • Control Center e Agents = 0 processo residente quando fechados e não há tarefa aprovada em segundo plano.
  • No autostart de browser, agent, gateway, Flatpak updater, pacote AppImage e indexing desnecessário.

Critério de alerta

Regressão significativa de PSS, start latency, CPU idle, bateria ou diminuição de responsividade bloqueia release até triagem ou decisão documentada. Se <=300 MiB for inviável sem quebrar funcionalidades, comunicar limites e escolher entre modo mínimo alternativo e revisão formal da meta.

Diagnóstico

Separar memory_report.json (statísticas) de hardware_report.json (modelo/GPU) e software_versions.json. Não salvar hostname, serial, MAC, SSID, tokens ou env com secrets.

Antipadrões

Matar serviço de rede para report ‘bom’; medir somente terminal sem desktop; comparar RSS de processos isolados como memória física; esconder kernel cache; declarar números de benchmark sem HW/exata versão.

Instrumentação de protótipos do Flowral DE

Medir antes e depois de substituir swaybar/Waybar, Fuzzel, Mako, swaybg, etc. Em cada execução registrar PSS, CPU idle, wakeups e tempo para abrir UI/fechar processo. Painéis e notifications são residentes; launcher, power menu, controle e temas devem sair da memória ao fechar. Não comparar soma de RSS a memória total. Slint Viewer/MCP, bacon, QEMU e virsh são ferramentas de desenvolvimento, excluídas da medição da sessão de produção; deixar claro qual processo roda no E430.