Comprehensive Linux Terminal Performance Comparison

Linux has an abundance of excellent terminal applications. Interestingly, I could not find any decent comparison of their text display performance. Since I use the command line a lot, I want text output that is as fast as possible. When you compile a large project, you don’t want the console output to be the limiting factor.

System

Due to popular demand, here is what my test system looks like: Ubuntu 7.04, Gnome, ATI Radion Mobile 9600 with fglrx driver, and a Pentium M with 1.5 GHz.

The Benchmark

I took the burden on me to do a comprehensive comparison of the text through of all possible terminals. The benchmark is very simple, I timed displaying the whole content of RFC3261. Download the file if you want to make your own benchmarks. The benchmark is executed like this:

I have measured the time in seconds. Without further ado, I give you the results (click here for a better readable PDF version):

ts
Runtime in seconds timed with time cat rfc3261.txt.

Results

These are some very interesting results:

  • Both gnome-terminal and konsole are exceptionally fast, it takes only 0.25 to 0.59 seconds to display the 647976 bytes large file. They buy the speed with quite a bit of memory consumption, and it can be clearly seen that the output does not smoothly scroll but only updates several times per second. This is a clever trick and has the advantage of being extremely fast, because not every letter needs to be pumped through the X windowing system. If you compile a lot or have other automatically generated output, gnome-terminal and konsole are the clear winners.
  • konsole uses a lot of memory, about 32 MB. When setting the history buffer to 10.000 lines, it increases to 38MB per instance.
  • gnome-terminal has a very different memory behavior. When you open multiple terminals, they are all memory managed from one gnome-terminal instance. This one instance requires about 45 MB freshly started. When opening multiple terminals and each one with 10.000 lines of used buffer, each terminal requires about 16 MB, so when you open more than three terminals at once you have already lower memory requirements than when using konsole.
  • xterm is the slowest terminal. While it is probably the most widely used term, the only slower terminal is Microsoft Window’s cmd.exe! Each instance requires 16 MB RAM, which is a lot in comparison to other terms with similar features.
  • wterm is both reasonably fast and the most memory efficient of all tested terminals. Each instance requires only about 6.3 MB of RAM, even with 10.000 lines of buffer. Only aterm but without buffer comes with 6.5 MB pretty close.
  • Eterm is quite fast and memory efficient (9 MB), even with transparency.

Conclusion

So, what is the best terminal? The answer is actually quite simple:

  • If you want speed, use gnome-terminal or konsole.
  • If you are low on memory, use wterm, rxvt, or Eterm.
  • xterm is slow.

UPDATE: Of course, the answer is actually not so simple. As some have told me, they get a quite different performance behavior on their system. I suspect that both the linux scheduler and the X scheduler has a lot to say in this issue too. So if you want to have results you can trust, you have to redo the benchmark on your machine. Fortunately, that’s simple: just cat a large file and measure the time it takes. Be sure to run it multiple times to get more accurate average numbers.

Other Remarks

  • Windows does not have the time command, so I wrote a simple Ruby script that does the same thing:
    Also, cmd.exe only allows 9.999 lines of buffer.

  • If you want to display bitmap fonts in gnome-terminal, edit ~/.fonts.conf and add these lines right after the opening tag:

I hope this is helpful in your choice of the best console.

92 Comments on "Comprehensive Linux Terminal Performance Comparison"

Notify of
avatar

Awksijek
Guest
8 years 7 months ago

I’m backing up sequethin here.

.022 ms on Mac OS 10.4.10

nwg
Guest
nwg
8 years 7 months ago

thanx for an interesting article.
btw., there is ‘ntimer.exe’ in the windows resource kit tools pack 🙂

trackback
[…] The Martin Ankerl weblog performance-tested many popular terminal applications on their text through capabilities (the time it takes to load and display the full content of a very large text file) to find out which terminal application is the fastest and which is best for low performance PCs. The terminal apps tested include the Windows Command Prompt, PuTTY, gnome-terminal, konsole, aterm, wterm, xterm and Eterm. Spoiler altert: The fastest terminal benchmarked was gnome-terminal (followed closely by konsole). PuTTY came in at a distant 30th place and the Windows Command Prompt rolled in at disappointing 35th. Comprehensive Linux Terminal Performance… Read more »
LongLivePutty
Guest
LongLivePutty
8 years 7 months ago

Wow, I understand the test but why would you even post a result that was done from a remote host over an ADSL connection and consider that to be accurate? Putty running locally like the others would have probably been more fair to it.

Anonymous
Guest
Anonymous
8 years 7 months ago

I’m with #54. Loading the file through PuTTY over a network compared to loading files locally via other terminals isn’t what I would call an apples-to-apples comparison.

it
Guest
it
8 years 7 months ago
This benchmark is seriously botched! Urxvt (full unicode, multiple character sets in one window at once) does it in 0.043, taking 2.8 MB at start. Mem is growing with the scrollback as it gets filled. It is obviously the winner here!! Next time you test, use default config – no TTF, no antialias. It still has cleaner font than any TTF and can display more character sets than the rest of term together. My results (same doc, same cmd): urxvt 0.041s rxvt 0.043s gnome-term 0.188s konsole 0.630s xterm 0.679s RAM (RSS): urxvt 2.8 MB rxvt 2.9 MB xterm 4.2 MB… Read more »
kosmosiki
Guest
8 years 7 months ago
This comparsion is somewhat flawed: 1. Text terminals are *not* used to display very large chunks of text – it is pointless. It does not matter if my terminal displays 3MB of text in 10 seconds or 4 minutes since if I wish to read this text it would take me about few hours. So your test is an absurd one. If I’ve wished to read some text I would use less (or better – most). If I’ve wished to grep some large chunks of text – well I would grep them. Main use of text terminal is *not* to… Read more »
T
Guest
T
8 years 7 months ago

+1 good test!

We don’t always want to read *everything* in our windows… if I’ve got a huge tarball I want to undo, and I want to monitor its progress, I might be tempted to use -v.

If this tarball contains tons of tiny files, I don’t want the operation to take 5 times as long because the terminal can’t display fast enough.

A real fast terminal would let me glance at the text flying by and have a good idea how well the untarring is coming.

anonymous
Guest
anonymous
8 years 7 months ago

now here’s the real test of terminals…

$ time for i in `seq 1 100`; do xterm -e false; done

real 0m5.389s
user 0m1.044s
sys 0m0.396s
$ time for i in `seq 1 100`; do gnome-terminal -e false; done

real 0m41.062s
user 0m30.482s
sys 0m2.720s

Nikhil
Guest
8 years 7 months ago

I think the reason you thought konsole is a memory hog is because you ran it from Gnome and so it had to load kdelibs and stuff. If you run it from KDE then konsole and gnome-terminal should be quite close.

mock
Guest
mock
8 years 7 months ago

#60 – not true if he measured RSS, which I presume he did
it would be the same if ran from KDE of GNOME

jimmy
Guest
jimmy
8 years 7 months ago
IT’S NOT FAIR AT ALL – for Konsole you allow “skip” mode, which doesn’t really display all the contents, but for e.g. rxvt you don’t… If you run rxvt (or urxvt) with -ss -j, then it will outperform ALL competitors by two orders of magnitude! It’s finished in about 0.030s (real). 1) If somebody wants to see all the lines, one by one – he doesn’t care for speed, really (this is the least usual approach). 2) If he wants super fast scrolling, but also needs to be able to scroll back (e.g. for compile errors), he will use skip… Read more »
trackback

[…] Según vemos en Kriptopolis, se ha realizado una comparativa de terminales para encontrar el mas rapido en ejecucion. Si os interesa podeis verlo aqui. No es usual ver este tipo de test con lo cual es recomendable el echarle un ojillo :). […]

trackback

[…] Comprehensive Linux Terminal Performance Comparison by Martin Ankerl Tags: none September 9, 2007, at 4:30 — links — BY-NC-SA […]

Rodney Fisk
Guest
8 years 7 months ago
Hi, Thanks for doing that test. I think we could tweak it a bit to get more accurate results, but it still is interesting. I see a glaring problem in some of the results toward the bottom. I can’t imagine how it took _nine_ seconds to display rfc3261 in a cmd window! I’m running XP and I’m getting it delivered in full before I can get my finger off the [enter] button! Something’s terribly wrong there. I didn’t see that you are running a loop. Are you running a loop? That file isn’t that big. I’d be interested to know… Read more »
deep4t
Guest
deep4t
8 years 7 months ago
man, what cracking perform from gnome-terminal! and what a slug is the old xterm. Results from a pentium M 1.6 Dell latitude graphics that uses intel graphics and shared mem running Ubuntu 7.04. and yes mrxvt is the winner! I never would have guessed! real 0m0.152s user 0m0.000s sys 0m0.044s gnome-terminal, a very close second real 0m0.274s user 0m0.000s sys 0m0.028s wterm, an old fav: real 0m1.124s user 0m0.004s sys 0m0.008 eterm, the glamor term: real 0m1.290s user 0m0.004s sys 0m0.028s and xterm the slug, the only thing good about it is it’s fast loading: real 0m1.727s user 0m0.008s sys… Read more »
trackback
[…] The Martin Ankerl weblog performance-tested many popular terminal applications on their text through capabilities (the time it takes to load and display the full content of a very large text file) to find out which terminal application is the fastest and which is best for low performance PCs. The terminal apps tested include the Windows Command Prompt, PuTTY, gnome-terminal, konsole, aterm, wterm, xterm and Eterm. Spoiler alert: The fastest terminal benchmarked was gnome-terminal (followed closely by konsole). PuTTY came in at a distant 30th place and the Windows Command Prompt rolled in at disappointing 35th. Comprehensive Linux Terminal Performance… Read more »
McBig
Guest
McBig
8 years 7 months ago

good work, but in terminal, there is another time element – scrolling, try this in your terminal:

dmesg

end then scroll (via mouse is the best), you can view very interesting values about your cpu load …:(

trackback
[…] The Martin Ankerl weblog performance-tested many popular terminal applications on their text through capabilities (the time it takes to load and display the full content of a very large text file) to find out which terminal application is the fastest and which is best for low performance PCs. The terminal apps tested include the Windows Command Prompt, PuTTY, gnome-terminal, konsole, aterm, wterm, xterm and Eterm. Spoiler alert: The fastest terminal benchmarked was gnome-terminal (followed closely by konsole). PuTTY came in at a distant 30th place and the Windows Command Prompt rolled in at disappointing 35th. Comprehensive Linux Terminal Performance… Read more »
trackback
[…] The default terminal on Fluxbuntu is Eterm. It is a very pretty and lightweight terminal, with nice scrollbars, it’s own menus and nice backgrounds. It has one drawback though – on my machine it is deadly slow to startup. I don’t know about you but if I can count up to 5 or 6 Mississippi’s before the window even shows up, it’s bad. I need a terminal that is a little bit snappier than this. Fortunately Martin Ankerl did all the legwork for me, and conducted a very extensive Linux terminal speed benchmark. Armed with that document, I found… Read more »
zoe
Guest
zoe
8 years 7 months ago

there is a noticeable difference if you are outputting text to the console (real text-mode console) but looking at a different vt. that’s what i do, i haven’t timed it though.

trackback

[…] Acá hay un excelente análisis que compara la velocidad y uso de memoria de diferentes terminales de Linux. Algunos resultados interesantes: […]

trackback
8 years 7 months ago

??? ??? ?? ?? – gnome-terminal? ??!…

Martin Ankerl? ??? ???? ???, ???? GUI ??? ? ?? ?? ?? gnome-terminal??, ? ??? konsole???. ???, gnome-terminal? konsole? ?? ?? ????? ?? ?? ??? …

trackback
[…] The Martin Ankerl weblog performance-tested many popular terminal applications on their text through capabilities (the time it takes to load and display the full content of a very large text file) to find out which terminal application is the fastest and which is best for low performance PCs. The terminal apps tested include the Windows Command Prompt, PuTTY, gnome-terminal, konsole, aterm, wterm, xterm and Eterm. Spoiler alert: The fastest terminal benchmarked was gnome-terminal (followed closely by konsole). PuTTY came in at a distant 30th place and the Windows Command Prompt rolled in at disappointing 35th. Comprehensive Linux Terminal Performance… Read more »
Anonymous
Guest
Anonymous
8 years 5 months ago
I think Martin’s pretty lucky here that he’s achieved nearly 50% of commenters with a brain – often it’s a lot lower than that. But some of these people are really getting themselves all heated up for very little reason; Martin did not claim to be conducting the final, ultimate test for all Linux terminals, and he is not preventing you from providing your own tests. How many of you provided such information of your own on your own blogs? This is a useful guide, not the only one, to terminal speed. By all means, conduct your own tests and… Read more »
Kjetil T.
Guest
Kjetil T.
8 years 5 months ago
This is just silly. I ran it in gnome-terminal, and I got 2 (two) screen updates. No wonder it’s “fast”. In XTerm, no text is left out from the output, a feature which should not be taken lightly. The eye is extremely good at spotting unusual patterns, and when compiling software, this means you can quickly notice when something is amiss. Of course, I agree with others that you really need to use tee(1) and less(1) afterwards to really study the output. In any case, for my usage, gnome-terminal is completely useless. Konsole is a little better, it does perhaps… Read more »
Fred
Guest
Fred
8 years 4 months ago
i’ve been using xterm for a LONG time, maybe 7 years or so. i like it because its compact and simple, i’ve never had the time to fiddle another flashier terminal to be as “clean”. i’ve been aware of xterms performance limitations for a long time now, the reason for them in my case is this : xterm -T rwdlsd -sb -sl 100000 -ls -bg grey80 -fg black 100,000 lines of buffer. it eats a LOT of memory per instance when maximised. 208MB per instance, or 91MB per 80×25 instance. it took 1:20 for your test on my 1800 turion… Read more »
Michael
Guest
Michael
8 years 4 months ago
There was a really good explanation of why all this is wrong here, but your blog decided to swallow it. I’m annoyed, I’m not going to write it again. Basically, your results are incorrect as you’re timing how long it takes “cat” to terminate, NOT how long it takes to display anything on screen. I can trivially write a terminal that reads everything from cat as quickly as possible, which would pass your test above with flying colours, yet still not render a single character to screen. This is probably what gnome-terminal does to get its speed increase over the… Read more »
eekee
Guest
eekee
8 years 4 months ago

Michael has a point, but there is one thing the test is good for is for: determining which terminals will slow down commands with lots of low-information-value output, such as the debug options to some commands. The Linux console benefits from hardware designed to display monospace text but lacks jumpscroll, and because of that it can actually slow down a program considerably if there’s a lot of output. I was surprised.

Martin Ankerl
Guest
8 years 4 months ago

hi Michael, I am sorry if your previous post was somehow swallowed. I only delete spam messages with links to dubious sites, never other opinions.

In my experience gnome-terminal *is* faster than xterm, because it is smarter. no terminal has any idea which program is used, so instead of cat you can also use any other program that quickly pumps out characters to the screen.

Boris Toloknov
Guest
Boris Toloknov
8 years 4 months ago

Hi,
IMHO the results for Windows look suspicious. I never have anything even close to that on any Windows machine. I used fixed raster font for cmd and interrupted “cat rfc3261.txt” in a minute. The same results for “type rfc3261.txt”. The Cygwin’s rxvt does “cat rfc3261.txt” in about 1 sec even with larger font. How did you manage to get the same time for xterm and cmd ?

Boris Toloknov
Guest
Boris Toloknov
8 years 4 months ago

I did some comparations for rxvt, xterm ( Linux ) and windows console ( 2000 Pro, cmd.exe ) with similar enviroment: almost the same accelerated nvidia drivers; window size: 91×35; fonts: xos4-terminus-bold 20px ( linux ) and “Raster Font” 10x20px ( windows console ).
Windows console has screen buffer size == window size. rxvt and xterm have default buffer size.
The Results:
rxvt: 0.8 sec
xterm: 2.8 sec
windows console ( cmd.exe ): 23.6 sec

paul fox
Guest
7 years 3 months ago

@Anonymous
the fastest terminal emulator is my own — fcterm. I looked at gnome – it is fast for small windows and horrendous for large windows (rowsxcols). fcterm uses the same tricks as the other emulators, but combines them and gets a one up, along with infinite scrollback.

its not open source (because I havent bothered to package it that way), but if anyone is interested they can contact me at fox-at-crisp-demon-co-uk.

(it is free tho).

trackback

[…] Comprehensive Linux Terminal Performance Comparison Linux has an abundance of excellent terminal applications. Interestingly, I could not find any decent comparison of their text display performance. Since I use the command line a lot, I want text output that is as fast as possible. When you compile a large project, you don’t want the console output to be the limiting factor. http://martin.ankerl.com/2007/09/01/comprehensive-linux-terminal-performance-comparison/ […]

trackback

[…] (props) […]

krxlprnft
Guest
krxlprnft
5 years 11 months ago

I cannot share the assessment in the post that the gnome-terminal/xfce-terminal or konsole are faster than xterm. I use only these, so I don’t know about others. XTerm on my 1.4GHz Laptop is by far the most efficient terminal of the lot.
Terminal usage and editing in vim on 1680×1050 or using screen everything except xterm starts to suck. There might be some trickery with the graphics card going on, making the others faster on a current systems.

MikeW
Guest
MikeW
5 years 10 months ago

Another variable is, how much of the terminal is visible.

I found a few years ago that kernel builds on RedHat 9 ran much faster if I a) covered the term window with another window or b) minimised it.

So possibly if you want the fastest output with the ability to check what’s going on, just leave the line at the term bottom showing beneath another window on top.

Or maybe display drivers are better these days !

Ben in Seattle
Guest
Ben in Seattle
4 years 11 months ago

Those results surprised me, since I always assumed xterm’s JumpScroll feature would allow it to go, effectively, infinitely fast.

One terminal emulator you forgot to measure is Emacs’s shell. It has an infinite scrollback buffer, so is slowed slightly by malloc. Here are the results for Emacs 23.2:

Emacs 23.2 (buffer visible): 3.5 seconds
Emacs 23.2 (buffer hidden): 1.5 seconds

Enabling line-number-mode in the shell dramatically slows the terminal (to about 10 seconds).

Ben in Seattle
Guest
Ben in Seattle
4 years 11 months ago

It’s possible Emacs is actually faster than my measurements show. I just ran the test on gnome-terminal and came up with 1.2 seconds, which is dramatically higher than the results everybody else is getting. Probably the machine I’m on has some X deficiency.

For people who like Emacs’ line-number-mode, but don’t want the overhead in a shell, here’s a kludge that disables counting lines only in command line interface buffers:

;; Turn off line-number-mode in shells to speed it up.
(add-hook
‘comint-mode-hook
(lambda ()
(set (make-local-variable ‘line-number-display-limit) 0)))

trackback

[…] choice:rxvt -fn vga -bg black -fg gray -geometry 80×24+0+0Using with “modern” terminals(props)Some terminals only use the stock fonts and won’t use your misc. .pcf fonts.  This includes […]

trackback

[…] (props) […]

Barry Kelly
Guest
1 year 6 months ago
It’s unfortunate that this article comes up near the top of results for searching ‘fastest terminal emulator linux’. Catting a file to the terminal isn’t a great test of terminal performance. If you’re worried about your terminal restricting the speed of your compiles, you’re better off reducing your compiler’s output, or redirecting it to a log and following it with tail -f. That is, if your compiler is spending most of its time writing output, the solution is to get it to write less output. My concern with terminal performance is using it as a terminal; how performant using screen… Read more »
wpDiscuz