The script best songs, Nikon fm2n repair manual, Java games fre s, New ringtone wallpaper 2013 zedge, Psx emulator softonic, Convert new zealand drivers license to australian, Music for schools, Super street fighter mobile, Malayalam movie 2012 mp4
sysd.org
18jul/121

Terminal Velocity

 

Não, não se trata de um fenômeno físico, nem de um videogame, e muito menos de um filme com Charle Sheen. Já que passo a maior parte do dia na frente de um emulador de terminal (a famosa "tela preta com as letrinhas"),  observei que em alguns casos a user experience (se é que posso falar assim de CLI) é mais fluida e agradável do que em outros.

Em outras palavras, bandwidth de saída de caracteres na tela é bastante variável.

Isso é evidente em programas que subvertem a ideia do texto linear, os fabulosos TUI, tais como Vim ou Midnight Commander. Não é tão evidente em libcaca ou icat, pois são poucas as pessoas que sabem o que é isso e um número ainda menor encontra alguma utilidade para eles.

Felizmente, tendo reduzido "usabilidade" em "bandwidth", quantificar a métrica se torna fácil. É só pegar um texto grande, jogar na tela e cronometrar. "Texto grande", no caso do meu teste, foi o código-fonte do Perl v5.16.0, "colorificado" através de source-highlight:

find ~/perl-5.16.0 -type f -name '*.[cht]' -or -name '*.p[lm]' -exec \
    source-highlight --failsafe --infer-lang -f esc --style-file=esc.style -i {} \;

Depois, listei esse arquivo em cada emulador de terminal, dentro de VMs respectivos de cada OS (isso é, VM de Linux, de Windows e de Mac OS). VM fez-se necessário para "nivelar por baixo": seria injusto comparar VMs de Windows e Linux com o Mac OS nativo. Não mexi em configurações/preferências dos emuladores de terminal: fontes, cores e tamanho da tela são os default de cada "fabricante". O resultado está no gráfico no começo do post, e também nessa tabela:

Terminal Time (sec)
iTerm2.app (Mac) 12.72
Terminal.app (Mac) 41.03
xterm (Mac) 41.52
mintty (Win32) 14.86
xterm (Linux) 29.70
Gnome Terminal (Linux) 61.68
80x24 text-mode console (Linux) 276.68

O que salta aos olhos é que justamente o Linux, o sistema que contribuiu tanto para o "revival" do CLI, é o que tem emuladores de terminal mais lentos. E o terminal mais simples (aquele que no Linux é acessível via Ctrl+Alt+F1; a telona DOS clássica) é, contra-intuitivamente, o mais ineficiente!

É claro que esse benchmark é muito tosco. Talvez seria mais representativo utilizar a mesma fonte em todos os terminais testados, e também maximizar a tela dos mesmos (a quebra de linhas longas costuma ser custosa), além de desabilitar o histórico de scrollback. Fonte com/sem antialiasing e uso/não-uso de ANSI escape sequences também interferem na velocidade da saída. Mas, enfim: a diferença de velocidade é suficientemente grande e perceptível. Portanto, duvido muito que algum ajuste fino deixará Gnome Terminal mais rápido do que iTerm2.app.

Comentários (1) Trackbacks (0)
  1. O gnome terminal e’ beeem pesado msm, acho q eles nao sabem programar direito em opengl, nao e’ possivel… me forcei a usar um monte de xterm no meu laptop mais velho. Bom saber do iTerm2, sou noob em Mac OS. abs


Leave a comment

Sem trackbacks