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
- Boot limpo no E430; esperar 2–3 minutos após login, sem abrir app.
- Repetir 5 boots com rede conectada, sem autoupdate, hardware e tela documentados.
- Capturar:
free -m,/proc/meminfo(MemAvailable,MemTotal),ps -eo pid,comm,rss --sort=-rss,smem -tkoups_mempara PSS. - 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.
- Capturar CPU idle, wakeups quando possível, tempo de boot, tempo de troca de tema, FPS/latência da UI, disco e bateria.
- 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.