- Foi publicado no Twitter um vídeo comparando a velocidade de um computador antigo rodando Windows NT 3.51 com a de um computador novo rodando Windows 11, e ele viralizou bastante
- Ambos fazem as mesmas ações: abrir e fechar o Prompt de Comando, o Explorador de Arquivos, o Bloco de Notas e o Paint
- No computador antigo, tudo executa imediatamente, mas no computador novo é mais lento
- A latência da interface de usuário nos computadores modernos é muito ruim e está piorando
- Houve quem dissesse que a comparação era injusta porque o hardware usado era um desktop e um notebook (Surface Go)
- Foi feita uma nova comparação instalando Windows 2000 em uma máquina K7-600 e Windows 11 em um Mac Pro 2013 (Xeon de 6 núcleos + 32GB), mas o resultado foi parecido
Evolução dos computadores
- Desde os anos 2000, houve avanços em muitas direções: gráficos impressionantes, monitores de alta resolução, redes ultrarrápidas, edição de vídeo em tempo real etc.
- Também houve grande evolução no lado de I/O, já que nos sistemas antigos o I/O de disco era sempre o ponto mais fraco
- Disquetes eram instáveis e lentos, CD/DVD eram um pouco mais confiáveis, mas ainda lentos, e HDDs eram o gargalo de muitas coisas
- O I/O aleatório começou a chegar aos seus limites físicos
- Com o surgimento dos SSDs e sua adoção também em desktops, esse problema de I/O aleatório começou a ser resolvido
- De repente, tudo ficou mais rápido: boot, carregamento de jogos, abrir pastas com inúmeros arquivos...
- Instalar novo hardware também ficou mais fácil, conexões sem fio se tornaram comuns, e houve internacionalização de textos/apps (reconhecendo que Unicode não foi nem fácil nem barato)
- Em muitos aspectos, a situação melhorou, e hoje temos mais poder do que nunca. Caso contrário, não seria possível executar tarefas como processamento de fotos com ML em celulares minúsculos, algo inimaginável nos anos 2000
Latência terrível
- Mas nenhum desses avanços explica por que a latência de UI é hoje tão extremamente lenta
- A evolução do hardware deveria ter melhorado essa situação
Exemplos
- O Bloco de Notas era até recentemente um app nativo e iniciava rápido, mas ao ser reescrito como app UWP ficou lento. Ficou muito lento e ainda continua com poucos recursos. Uma perda de desempenho sem qualquer benefício para o usuário
- O Windows Terminal é muito melhor do que antes, mas é visivelmente pesado. Se você adicionar PowerShell, pode levar alguns segundos para abrir uma nova janela de terminal, a menos que esteja usando hardware topo de linha
- O macOS é melhor do que o Windows, mas também tem problemas. Abrir a janela de Ajustes é muito mais rápido em máquinas antigas
- O Linux provavelmente é o menos afetado por esse tipo de problema. Mesmo em um PC de 11 anos, o Fedora Linux 38, lançado em abril de 2023, roda bem. Mas isso também é uma ilusão: ao executar apps modernos que não foram desenvolvidos especificamente para Linux, o tempo de inicialização aumenta e o desempenho em geral piora
- O que mais me chocou foi quando entrei no Google em 2009
- Na época, a Busca do Google e o Gmail eram referência em excelente desempenho
- Mas fiquei muito surpreso ao ver o quão lentas eram as ferramentas internas de linha de comando usadas lá dentro
- Acho que a insistência contínua deles em empurrar webapps a qualquer custo ajudou a criar a situação em que estamos hoje
Causas
- Por que tudo isso aconteceu? É fácil chamar isso de "bloat", mas difícil definir
- Porque bloat pode ser justificável: cada pessoa pensa de um jeito sobre o que é bloat
- O que deixa tudo lento são as "prioridades"
- Ninguém mais prioriza desempenho, exceto em casos importantes como jogos, transcodificação de vídeo etc.
- O que as pessoas (e as empresas) colocam como prioridade é o "tempo do desenvolvedor": Rust e Electron
- Usam Electron porque desenvolver apps nativos separados é trabalho duplicado
- É conveniente, mas isso tem um grande impacto na latência no desktop
- Como nos casos do 1Password e do Spotify, houve reescritas em Electron para oferecer uma experiência unificada e reduzir custos
- Mas essa redução de custos é para a empresa, não para o usuário
- Essa economia impõe um imposto diário sobre todos nós, que usamos esses apps
- Outra decisão que aumenta a latência é a adoção em massa de linguagens gerenciadas e interpretadas
- JDK/CLR são bons em otimizar processos de longa duração, mas inicialização rápida não é algo que administrem bem
Melhorias pontuais foram consumidas (One-off improvements eaten away)
- Por fim, voltando à evolução do hardware e encerrando em tom pessimista
- A melhoria especial trazida pelos SSDs foi uma mudança pontual
- HDDs continuaram ficando mais rápidos, mas não entregavam o I/O aleatório rápido necessário para desktops
- A transição para SSD trouxe uma melhoria de outra ordem, mas esse benefício só pôde ser aproveitado uma vez
- Não existe outra tecnologia desse tipo capaz de proporcionar essa mesma experiência transformadora
- Portanto, quando os benefícios dessa nova tecnologia forem corroídos por software descuidado, voltaremos ao ponto de partida
- Claro, os SSDs continuam ficando mais rápidos, mas não produzem uma diferença tão enorme quanto a passagem de HDD para SSD
- Dá para confirmar isso usando versões atuais de Windows/macOS sem SSD
- É por isso que fico preocupado com o Apple Silicon
- Lembra do excelente desempenho no lançamento do M1, da bateria extremamente duradoura e da ausência de ruído de ventoinha?
- Se continuarmos com essa trajetória descuidada, essas vantagens também vão desaparecer, e quando isso acontecer será tarde demais
- Reforçar o desempenho de aplicações existentes é tecnicamente muito difícil, e quase impossível de priorizar dentro das organizações
- Então, será que arquitetos de computadores podem nos salvar com outra mudança tecnológica revolucionária? Eu não gostaria de depender disso. Não porque tal mudança talvez não seja possível, mas porque ela não deveria ser necessária
Versão resumida pelo GN⁺ (mantida para registro)
- Uma thread no Twitter comparando a responsividade de um computador antigo e um computador novo recebeu 8,8 mil curtidas.
- No vídeo, os apps do computador antigo abrem imediatamente, enquanto os do computador novo apresentam latência considerável.
- O autor questiona por que, apesar dos avanços de hardware, a latência da interface de usuário dos computadores modernos piorou.
- Falhas na comparação foram corrigidas e o mesmo resultado foi obtido.
- Foram discutidos avanços tecnológicos como gráficos, monitores de alta resolução e redes rápidas.
- Foi levantada a afirmação de que a latência da interface de usuário dos computadores modernos é muito ruim e está piorando.
- Apps lentos no Windows, macOS e Linux foram apresentados como exemplos.
- Software pesado, frameworks e linguagens gerenciadas foram propostos como causas do problema de latência.
- Foi levantada preocupação com o futuro do Apple Silicon, já que os benefícios do SSD podem ser anulados por software descuidado.
- Melhorar o desempenho de aplicações existentes é difícil tanto técnica quanto organizacionalmente.
- Segundo o arquiteto de computadores, uma mudança tecnológica revolucionária pode não nos salvar.
- Trabalho remoto não é uma solução para o problema de latência.
- O desenvolvimento open source dos anos 90 e 2000 já permitia trabalho totalmente distribuído e assíncrono.
- A latência em computadores é um problema desde pelo menos 1977.
- O computador com melhor latência encontrado por Dan Luu é de 1983, embora não consiga lidar com cargas de trabalho modernas.
11 comentários
Não seria o caso de termos escolhido a manutenção em vez do desempenho, e essa conta ter sido compensada pelo avanço do hardware até chegarmos aqui?
Quando o meu MacBook Air de 2010 ficou lento demais, consegui instalar o Snow Leopard de algum jeito, e ele ficou absurdamente rápido. Claro, não uso no dia a dia, mas...
Dá para sentir bem essa ideia de que a empresa já não coloca mais o desempenho como prioridade.
Mas a parte de que a redução de custos é para a empresa, não para o usuário
me faz pensar bastante.
Obrigado. Li com identificação.
Quando abro o menu de contexto na área de trabalho do Windows, tanto há 20 anos quanto agora, ainda parece lento enquanto fico olhando a ampulheta (depois da primeira vez até melhora um pouco, mas incomoda demais).
Claramente o hardware fica mais rápido, mas o software parece não acompanhar.
Lembro de ter visto um site com uma ideia parecida, reunindo só aplicativos leves (acho que era mais voltado para Linux)... mas quando fui procurar agora, não achei haha
Li com gratidão.
O que é que importa?
Na época em que as UIs eram implementadas só com WinAPI, elas eram limpas e rápidas.
Hoje em dia, com frameworks de UI espalhados para todo lado e esses apps baseados na web... subir um engine web ou o engine de um framework consome muitos recursos.
É um texto publicado no GN⁺, mas achei difícil entendê-lo pelo resumo da IA, então resolvi reorganizá-lo eu mesmo.
Viu só? Eu estava certo haha...
É como aquela sensação de quando o Lee Sedol venceu... nossa segurança no emprego.... por enquanto ainda está tudo bem, né? snif
Comentários do Hacker News