“O Home Assistant é mais rápido da segunda vez” pode descrever vários mecanismos diferentes. Um navegador pode reutilizar recursos do frontend, um painel já aberto pode receber o estado em tempo real através de WebSocket em vez de reconstruir a página, o sistema operativo pode manter páginas da base de dados ou da configuração na memória, e uma integração pode reutilizar uma ligação já estabelecida.
Chamar a todos esses efeitos “a cache do Home Assistant” esconde onde ocorre o ganho de velocidade. O modelo útil é nomear o pedido repetido e identificar que camada pode evitar trabalho na segunda execução.
A Cache do Navegador Acelera os Recursos do Frontend
JavaScript, estilos, ícones, cartões personalizados e outros recursos do frontend podem permanecer numa cache do navegador, para que um carregamento repetido da página evite transferir ou reconstruir os mesmos recursos de raiz.
As orientações atuais do Home Assistant para navegadores indicam explicitamente que a interface de utilizador coloca muitas coisas em cache no navegador para funcionar mais rapidamente. Essa mesma cache pode ficar desatualizada após atualizações ou alterações em cartões personalizados, razão pela qual uma atualização forçada pode corrigir uma interface que não funciona corretamente.
Esta cache altera o arranque e a apresentação da página, não a velocidade do controlo físico dos dispositivos. Limpá-la é um teste ao frontend, não uma reposição geral do desempenho do servidor.
Um Painel Aberto Reutiliza um Canal de Estado WebSocket em Tempo Real
Depois de o frontend estar ligado, não precisa de voltar a obter todo o estado da casa inteligente a cada alteração. Recebe atualizações e subscrições através da API WebSocket e atualiza os componentes relevantes da interface.
A arquitetura atual do frontend descreve como o frontend recebe o estado principal através de um objeto hass partilhado e mantém dados adicionais subscritos sincronizados através de WebSockets. Assim, um tablet de parede que permanece ligado segue um percurso de pedidos repetidos diferente do de um telemóvel que abre o painel a frio todas as manhãs.
Não interprete esta reutilização como prova de que muitos mais clientes irão escalar linearmente. Cada cliente adicional pode continuar a acrescentar trabalho de serialização, subscrições, pedidos de histórico e apresentação do lado do cliente.
A Cache de Páginas do Linux Acelera Leituras Repetidas de Ficheiros e Bases de Dados
As leituras normais do sistema de ficheiros passam pela cache de páginas do Linux. Páginas de bases de dados, ficheiros de configuração e recursos estáticos utilizados recentemente podem permanecer na memória e evitar uma nova leitura do armazenamento físico num pedido repetido.
A documentação atual do kernel Linux explica que as leituras normais de ficheiros preenchem a cache de páginas, permitindo que leituras posteriores evitem acessos de armazenamento mais dispendiosos. Isto significa que uma consulta repetida ao Histórico pode beneficiar da memória mesmo quando o Home Assistant não implementou uma cache especial ao nível da aplicação para essa consulta específica.
É por isso que as diferenças entre SSD e HDD podem parecer menores num teste a quente do que após um reinício, a expulsão da cache ou a utilização de um conjunto de trabalho muito maior.
Dados Quentes Não Significam que a Consulta Subjacente Ficou Mais Barata
Um pedido de Histórico pode continuar a analisar ou indexar a mesma quantidade lógica de dados, enquanto as páginas de que necessita estão simplesmente residentes na memória. Um painel pode continuar a pedir as mesmas entidades enquanto os recursos e o estado da ligação já estão disponíveis.
O guia de referência da ZimaSpace relacionado, sobre separar o desempenho com cache quente da capacidade real, mostra a consequência operacional: a cache é útil, mas uma alegação de capacidade tem de resistir a uma pressão realista sobre a cache e a uma carga de trabalho sustentada.
Um acerto na cache elimina um custo de um pedido. Não elimina o trabalho de CPU, memória, rede, base de dados ou integração que pertence a outras fases do percurso.
Pedidos Repetidos Diferentes Aqueçem Camadas Diferentes
- Recarregar o mesmo painel: os recursos do navegador e o runtime do cliente podem estar quentes.
- Manter um tablet de parede aberto: o estado WebSocket e as subscrições permanecem ativos.
- Repetir o mesmo intervalo do Histórico: as páginas da base de dados e do sistema de ficheiros podem permanecer na memória.
- Chamar o mesmo serviço local: as ligações de integração ou de rede estabelecidas podem já existir.
- Abrir depois de um reinício: várias dessas camadas podem estar frias ao mesmo tempo.
Meça a camada correspondente à ação do utilizador, em vez de limpar todas as caches e chamar a isso “ciência”.
FAQ
Limpar a cache do navegador torna o Home Assistant Core mais lento?
Altera principalmente o percurso de carregamento do frontend. O Core continua a executar a mesma lógica do servidor, mas o navegador pode ter de transferir e reconstruir novamente os recursos, tornando mais lento o primeiro carregamento da interface.
Uma consulta ao Histórico a quente é inútil para benchmarking?
Não. As consultas a quente representam uma condição real de funcionamento. O erro é tratar o resultado a quente como o único resultado de capacidade, quando a pressão sobre a memória, um reinício ou um conjunto de trabalho maior podem eliminar essa mesma vantagem da cache.
Centro de Tecnologia e IA
Mais para Ler

Estado em tempo de execução vs. estado persistente no Home Assistant: o que tem de sobreviver ao reinício?
O Home Assistant não persiste todos os valores em tempo real; a configuração, os registos, os estados restaurados selecionados, o histórico e os dados...

Como é que o Home Assistant autentica sessões locais e remotas?
As sessões locais e remotas do Home Assistant utilizam o mesmo modelo de identidade do lado do servidor; o acesso remoto altera a rota...

Porque é que as consultas ao histórico do Home Assistant podem ficar mais lentas à medida que os dados do Recorder aumentam?
O crescimento do gravador pode aumentar o custo das consultas do Histórico quando o intervalo solicitado abrange mais linhas, as falhas de cache aumentam...

