
Quanto custa um pouco de chuva?
Medido em 28 de setembro de 2026 · Apple M4 Max · Uma tela integrada
O Weatherling desenha chuva em movimento ao redor das janelas, então usa tempo de CPU, trabalho da GPU e memória enquanto funciona. Algumas pessoas perguntaram quanto. Veja como faço as medições, o que o último teste mostrou e o que ainda preciso testar.
Neste Mac, as duas execuções curtas válidas com chuva padrão tiveram médias de 2,97–3,75% de um núcleo de CPU e 375–391 MiB de memória física. O teste de quatro horas usou mais memória ao longo do tempo, chegando a cerca de 467 MiB antes de estabilizar na última hora. São medições de uma compilação em uma máquina, não uma promessa para todos os Macs ou sobre duração da bateria.
O Mac e a compilação testados
Este teste usou um MacBook Pro com Apple M4 Max, 64 GB de memória e macOS 27.0. A tela integrada tinha 3456 × 2234 pixels em escala 2×, com taxa informada de 120 Hz. O Mac estava conectado à tomada. O brilho automático permaneceu ativo, e o trabalho normal continuou, com nove janelas visíveis no início. Não era um desktop de laboratório isolado e ocioso.
O app era uma compilação Release local identificada como 1.3 (compilação 3), baseada no commit 0ed73f4 com alterações locais adicionais de áudio e rastreamento de entrada registradas junto ao teste. Uma compilação Release usa otimizações de produção; isso não significa que este executável seja a versão disponível na App Store. Preservei uma cópia antes de coletar os dados para que mudanças posteriores no código não substituíssem o executável em teste.
Como funciona um teste de desempenho
Meço o app nativo desenhando chuva no desktop. Uma animação no navegador, uma captura ou um teste de renderização fora da tela não mostra todo o custo de manter uma sobreposição ao vivo entre janelas abertas. Ajustes temporários tornam cada fase repetível sem sobrescrever as preferências do usuário.
- Começar com o app fechado. Registrar uma referência do sistema por um minuto, abrir o app com a chuva desligada, esperar 30 segundos para estabilizar e coletar amostras por três minutos.
- Executar a chuva padrão. Usar intensidade 0,35, qualidade Automática a 30 fps, vento e profundidade fixos, sem som ou partículas próximas da câmera. Aquecer por dois minutos e medir por dez.
- Executar chuva forte. Usar intensidade máxima, qualidade Suave a 60 fps, partículas próximas da câmera e som. Novamente, aquecer por dois minutos e medir por dez.
- Repetir três vezes. Rodadas repetidas revelam variações que um único número favorável esconderia. Finalizar com outra referência com o app fechado.
- Deixar a chuva padrão ativa por quatro horas. Após um novo aquecimento, acompanhar memória e CPU durante a sessão longa, incluindo a tendência perto do fim.
A sequência completa leva cerca de cinco horas e meia. A ferramenta de teste mantém a tela ativa, e as configurações temporárias permitem chuva sobre apps em tela cheia. Essas são condições de medição, não evidências do comportamento normal em repouso. Rastreamentos de GPU, observações de rede e um registro do mapa de memória são feitos fora dos intervalos de medição de CPU e memória. Antes de aceitar um resultado, verifico os logs em busca de pausas, encerramentos inesperados e sobreposição com ferramentas de análise.
Resultados mais recentes
| Cenário | Amostras concluídas | CPU média | Memória física média |
|---|---|---|---|
| Chuva desligada, nova inicialização | 3 × 3 minutos | 0.23–0.82% | 26,0–26,4 MiB |
| Chuva padrão, 30 fps | 2 válidas × 10 minutos | 2.97–3.75% | 375,0–390,5 MiB |
| Chuva forte, 60 fps | 3 × 10 minutos | 6.17–10.01% | 411,7–419,3 MiB |
| Chuva padrão, longa duração | 4 horas | 5.64% | 441,5 MiB |
As porcentagens de CPU consideram um núcleo como 100%, não o processador inteiro. A memória é a ocupação física, que inclui a contabilização gráfica; não é o número menor de memória residente exibido por algumas ferramentas. Os resultados sem chuva são de inicializações com o efeito desativado, não de memória retida após desligar um efeito ativo.
A primeira rodada padrão foi excluída por precaução: uma regra de app excluído pausou a chuva perto do fim do aquecimento, e a atividade da ferramenta de captura atravessou o início da medição. Todas as fases terminaram, mas obtive apenas duas rodadas curtas padrão sem interferências. O uso de CPU com chuva forte também variou bastante entre rodadas. As mudanças de atividade no desktop dificultam atribuir essa variação apenas ao Weatherling.
Por que deixo o app ativo por quatro horas
Um teste de dez minutos pode não revelar alocações que se acumulam depois. No teste longo, a memória física subiu de 379,9 para 467,1 MiB, com pico amostrado de 469,7 MiB. As médias por hora foram 421,0, 435,0, 442,8 e 467,0 MiB. A última hora ficou quase estável: a tendência ajustada foi de cerca de +0,1 MiB por hora.
Essa estabilização final é útil, mas não prova a ausência de vazamentos. O crescimento anterior ainda merece investigação. A CPU média nas quatro horas foi de 5,64% de um núcleo; o percentil 95 foi de 12,15%, ou seja, 95% dos intervalos amostrados ficaram nesse nível ou abaixo dele. Nenhuma pausa de ciclo de vida foi registrada no teste longo. Ativações repetidas, reconexões de telas e ciclos de repouso precisam de testes separados.
Trabalho da GPU e fluidez
Gravações separadas com Metal System Trace observaram cerca de 30 callbacks de apresentação por segundo na qualidade padrão e 60 na qualidade alta. O tempo ativo de GPU médio / percentil 95 por buffer de comandos foi de 0,307 / 0,758 milissegundos no padrão e 0,375 / 0,596 na qualidade alta. Para referência, um quadro a 30 fps tem 33,3 ms disponíveis; a 60 fps, 16,7 ms.
Cada rastreamento durou cerca de 31 segundos. Houve um intervalo entre callbacks acima de 50 ms no padrão e 15 acima de 25 ms na qualidade alta. Esses callbacks ajudam a descrever o ritmo, mas não medem diretamente a latência da tela nem contam exatamente os quadros perdidos. O tempo de execução da GPU também não é uma porcentagem de utilização. Mantenho o custo da própria ferramenta de análise separado das medições mais longas de CPU e memória.
E a duração da bateria?
Este teste não responde quantos minutos o Weatherling tira de uma carga de bateria. Coletei estimativas de energia do sistema nas rodadas curtas e observei o WindowServer, o processo do macOS que compõe o desktop. Essas leituras incluem outros apps e mudanças no trabalho. Subtrair uma leitura de sistema ocupado de outra não produziria uma potência confiável atribuível apenas ao app.
A gravação de energia começou no meio da primeira fase com o app desativado e terminou no início do teste longo. Por isso, a referência inicial com o app fechado e a maior parte das quatro horas não têm amostras de energia. Uma afirmação útil sobre autonomia exige testes controlados fora da tomada, brilho e carga de trabalho constantes e comparações com o app aberto e fechado. Ainda não concluí esse teste.
Como mantenho as medições confiáveis
O coletor de CPU lê os contadores de processo do macOS, com a conversão de tempo conferida contra um relógio de CPU do processo. Ele mede memória física e entrada/saída de disco aproximadamente a cada dois segundos. Salvo o hash do executável, a versão do app, o estado do código, os ajustes, os horários e os logs de ciclo de vida para rastrear cada resultado até sua execução. Neste teste, a análise detalhada terminou antes dos intervalos medidos, e as preferências salvas permaneceram iguais depois.
Registros curtos de rede são apenas observações durante aqueles intervalos; um registro vazio não prova ausência de rede por toda a vida do app. Da mesma forma, zero gravações físicas em disco não significa zero atividade lógica de arquivos. Guardo os rastreamentos brutos localmente porque podem conter informações sobre outros processos no Mac de teste. Esta página publica os resultados agregados e as condições.
Ainda preciso medir em Macs menos potentes, telas externas, bateria, Modo de Pouca Energia e transições sistemáticas de repouso e telas. Este teste também não isola o custo de cada Ling. Futuras medições usarão a mesma sequência quando possível, identificando mudanças de hardware, ajustes e compilação em vez de misturá-las em um único número de destaque.
Se o desempenho no seu Mac parecer diferente, envie um relato com o modelo do Mac, a versão do app, a configuração das telas e os ajustes de chuva. Esses detalhes ajudam a transformar uma preocupação geral em um teste que consigo repetir.