Hacker News new | past | comments | ask | show | jobs | submit login

This, along with the generally accepted notion that Gnome Terminal is one of the slowest with output, puts the whole minimalism idea under a serious question. "Do one thing, but do it well", the saying goes.



Compared to Terminal.app and iTerm2, VTE (the widget underlying Gnome Terminal) is blazing fast.


> the generally accepted notion that Gnome Terminal is one of the slowest with output

Really? Generally accepted by who? My unscientific personal tests show that Gnome Terminal is the fastest and lightest VTE.


You can run a completely unscientific experiment yourself: take a really large text file, or just use `yes`, and time its full output on several different terminals.

    yes | head -n 1000000 > two_megs.txt
    time cat two_megs.txt

You will definitely see a difference in the time it takes to complete or a libvte-based terminal, xterm, urvxt, roxterm, etc.

OTOH I can google up posts saying that pt shows good results in comparisons like that, apparently using a TTF font. Hopefully the bitmap font performance problem is not due to the general design, but a regression in a special case.


Huh, interesting results on my machine:

    urxvt 0.233
    gnome 0.474
    st    0.515
    xterm 1:13.87
times are total real time, in seconds, seem repeatable from a few runs.

I was expecting st to blow everything else away given its focus on minimalism, and what the hell is going on with xterm?


Minimalism is a tempting proxy for performance, but it often isn't. rg/ag/pt aren't some of the fastest file searchers around because they're short and don't pull cool tricks.

Another example: GNU vs BSD grep, from the author's mouth: https://lists.freebsd.org/pipermail/freebsd-current/2010-Aug...

Regex matching: https://swtch.com/~rsc/regexp/regexp1.html

(It's arguable that a backtracking implementation is not the simplest, although I think it is -- and even if it is, a FSA compiler clearly isn't!)

And, finally: people tell me Clojure is slow, and I tell them that it lets me write correct concurrent algorithms I understand. (See alioth shootout results.)


It could have to do with that xterm is trying to faithfully emulate an actual terminal (viz., VT220 with extensions) by replicating the VT's internal state machine, whereas libvte is trying to approximate the behavior of xterm and cutting corners as it does so.

Note that while libvte seems to have greater throughput, its latency is terrible compared to xterm.


xterm is showing all data. That's why it's slower. For a fair comparison, you should set the fastScroll X resource, which will allow xterm to suppress screen refresh.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: