3 pontos por GN⁺ 2024-04-09 | 1 comentários | Compartilhar no WhatsApp
  • VTE (Virtual TErminal library) é a biblioteca que serve de base para os emuladores de terminal do GNOME. Ela é usada em apps como GNOME Terminal, Console, Black Box, Tilix, Terminator e Ptyxis, além dos terminais embutidos do Builder e do Workbench.
  • Durante o ciclo do GNOME 46, o desempenho do VTE melhorou bastante. Este texto mede o quanto o desempenho realmente evoluiu e que diferença o usuário pode perceber na prática.

O que foi medido e como

  • Há várias formas de medir o desempenho de um emulador de terminal, mas este texto foca na latência de entrada (input latency).
  • Latência de entrada é o tempo entre pressionar uma tecla no teclado e a mudança de cor dos pixels no monitor. Apps com baixa latência de entrada parecem mais responsivos, enquanto apps com latência alta podem parecer lentos.
  • Para medir a latência de entrada, foi usado um testador de latência em hardware. Ele é composto por um sensor de luminosidade conectado a uma placa Teensy, ligada ao computador via USB.

Resultados do teste de latência de entrada

  • Primeiro teste: criação de um campo de entrada com o comando cat > /dev/null e medição do tempo até o cursor em bloco se mover uma célula para a direita ao pressionar a tecla Space
    • Os terminais VTE melhoraram muito no Fedora 40 em relação ao Fedora 39, chegando a um nível quase equivalente ao do Alacritty
  • Segundo teste: abertura de um arquivo README no neovim e medição durante a rolagem do buffer de texto com Ctrl+D e Ctrl+U
    • Novamente, os terminais VTE do GNOME 46 mostraram grande melhora e ficaram em nível quase equivalente ao do Alacritty
  • Na comparação de todos os terminais do Fedora 40 de uma vez, o teste com neovim mostrou aumento na latência de entrada em relação ao teste com cat, mas esse aumento foi semelhante em todos os terminais

Resultados do teste vtebench

  • Execução da suíte de testes vtebench do Alacritty no mesmo ambiente
  • Trata-se de um teste que mede desempenho de leitura e parsing de PTY, além de ser útil para encontrar falhas no VTE
  • O VTE do GNOME 46 também mostrou melhora no vtebench, mas ainda não no mesmo nível do Alacritty

Conclusão

  • No GNOME 46, o desempenho do VTE melhorou muito, levando a latência de entrada a um nível quase igual ao dos terminais mais rápidos
  • Se você vinha evitando terminais baseados em VTE por causa da resposta lenta e da latência de entrada, agora vale a pena testá-los novamente (recomendado usar VTE 0.76 ou superior)

Opinião do GN⁺

  • A melhora de desempenho dos terminais baseados em VTE é muito animadora. Ela deve contribuir bastante para aprimorar a experiência do usuário.
  • Foi interessante o uso de um testador em hardware para medir a latência de entrada. A explicação detalhada do processo de teste e da interpretação dos resultados também foi útil.
  • Também seria interessante comparar com o Terminal.app, terminal padrão do macOS, e com o Windows Terminal, o novo terminal do Windows.
  • Espera-se que as melhorias de desempenho do VTE tenham impacto positivo em todo o ecossistema GNOME. Ainda assim, parece haver espaço para avanços em alguns pontos, como acessibilidade e barra de rolagem.
  • Para usuários de desktop Linux, é uma notícia muito bem-vinda. Fica a expectativa de que vários emuladores de terminal evoluam ainda mais com base nas melhorias do VTE.

1 comentários

 
GN⁺ 2024-04-09

Comentários do Hacker News

  • É um feito que a latência de entrada do terminal mais recente do GNOME tenha ficado menor que a do Apple //e de 1983, mas o ambiente de teste difere do ambiente de uso real
    • O teste foi realizado no raw Mutter, um ambiente barebones, e não no GNOME Shell
    • A latência do teclado não foi incluída, então não é uma medição de latência ponta a ponta (a latência do teclado pode chegar a 60 ms)
    • Espera-se que a latência real ponta a ponta com as configurações padrão seja maior
  • A medição foi feita no centro do monitor, mas entre a parte superior e a inferior pode haver uma diferença de 8 ms (porque os pixels são desenhados de cima para baixo, como em um CRT)
  • É difícil fazer comparações simples entre monitores. Pode haver efeitos não comparáveis causados por drivers ou perfis
  • É irônico que, numa era em que renderização 3D realista é possível, ainda estejamos resolvendo problemas de exibição de texto no terminal
  • Foram impressionantes os esforços do desenvolvedor do VTE para melhorar o desempenho e para medir a latência com base em hardware
  • Pergunta sobre se existe algum terminal Linux que, como o Terminal do macOS, lembre o histórico e o scrollback de cada aba
  • Opinião de que, apesar de ter usado Gnome por muito tempo, depois de mudar para sway+alacritty não percebe diferença
  • Menção ao problema do tamanho inicial pequeno da janela do Gnome Terminal e ao fato de ele não salvar o tamanho
  • Opinião de que, usando xterm+i3wm, nunca experimentou nada mais rápido, e que o alacritty com GPU é exagero
  • Opinião de que seria bom incluir o terminal Ghostty, de Mitchelle Hashimoto, no benchmark
  • Opinião de que este benchmark foi bom por não ser um simples teste com cat, e que seria interessante testar mais terminais, especialmente o console Linux nativo também