Linux Terminal Memory Usage
gilesorr.com
gilesorr.com
https://sw.kovidgoyal.net/kitty/invocation/#cmdoption-kitty-...
Another thing for a very long time has been that most other terminals don't support bitmap fonts. This was/is critical for lower DPI monitors. Today I've mostly made the switch to TTF fonts.
I tried `cat /dev/random` in alacritty, rxvt, and xterm to compare output speed. rxvt and xterm both start 'instantly' on my laptop. With alacritty it's slower. Scroll speed of both rxvt and xterm are very similar though xterm seems to win by a little. Both blow the doors off alacritty though.
I'm not sure if this is a fair test, and hence why I posted, but if it is this is a very easy way to get a feel for the difference.
I've been using plain xterm/uxterm with black on white since 2000 at least.
With Vim gaining :terminal support, I need nothing else - I have tabs, splits, proper scrollback buffer navigation because the scroll buffer is a vim buffer...
Honestly, only emacs is a better terminal.
(if not for a nerdy sysadmin/hacker person that introduced me to all of that at the time). Was typing on smartphone half-asleep...
Private + Shared = RAM used Program
31.2 MiB + 10.7 MiB = 42.0 MiB xfce4-terminalNotes: This system is running Arch, with kernel 7.0.3, scx_bpfland, and i3 on X11. Primary GPU is an integrated Intel GPU.
Using picom:
Terminal Min Max Avg SD
alacritty 20.1 111.4 43.8 18.0
xfce4-terminal 19.1 112.5 49.1 17.9
xterm 12.3 152.6 53.1 26.4
wezterm 28.3 106.0 56.2 15.4
kitty 25.3 115.9 57.2 18.5
ghostty 19.2 611.8 63.4 45.5
konsole 37.9 138.6 68.8 18.5
Using picom --realtime: Terminal Min Max Avg SD
xterm 5.7 63.6 15.2 8.8
alacritty 7.4 48.8 20.2 9.7
xfce4-terminal 8.7 65.3 28.3 12.5
kitty 13.2 64.8 30.8 10.3
konsole 17.3 71.2 31.1 9.5
ghostty 12.9 63.7 33.2 11.6
wezterm 18.0 58.6 33.6 11.1
No picom: Terminal Min Max Avg SD
xterm 4.5 20.4 8.6 1.0
alacritty 9.2 13.3 11.1 0.7
xfce4-terminal 7.4 17.5 11.3 0.9
ghostty 11.2 35.3 18.8 3.8
wezterm 14.1 34.2 22.7 3.7
kitty 12.2 44.3 24.4 5.8
konsole 17.2 30.7 25.0 3.6
Running on the NVIDIA GPU just for fun: wezterm (no picom, NVIDIA) 21.7 51.2 34.8 8.1
wezterm (picom rt, NVIDIA) 22.0 70.9 41.4 11.2
wezterm (NVIDIA) 34.4 146.7 69.0 17.8
Slightly surprised that xterm doesn't top the chart on the picom category.In tipical GNOME fashion, they have decided to replace this largely working piece of software with on with one that places solidly at the bottom of the article's list (ptyxis).
If you run:
GSK_RENDERER=cairo ptyxis -s
You can verify that with 69,985 here RES and 52,428 of that SHR. With 5 tabs open it jumped to 71,208 here. Presumably for the encrypted scrollback pre-allocations.
You still may not choose to use it, but it should stay relatively similar the more tabs you open.
Also, it's not a core GNOME app. It's just an app I wrote for me that the distros seem to have liked for its design/platform integration.
And I didn't really miss any features to be honest, it has the basic that you expect (things like tabs). It is less customizable than other options, but the defaults were good enough for me.
edit: the article did mention st but claimed it had no scrollback, that's what the patches are for. st-flexipatch makes it easy to enable or disable the patches via c preprocessor defines.
I tried ghostty the last year and I was instantly turned off by how much ram it hogs, but even more horrible was that it was using close to 10% cpu just sitting idly, doing absolutely nothing. It also felt at least twice as slow.
I need my terminal to display text, do scrollback and nothing else. I don't need gpu rendering, I don't need any fancy features, just be respectful to my system resources. Is it too much to ask?
This is similar to the `kitty --singleinstance` mentioned in another comment by amarshall.
If someone ever makes a Debian distro that is bleeding edge and supports Nvidia drivers (basically a more bleeding edge Ubuntu) I'd be all ears.
Private + Shared = RAM used Program
53.3 MiB + 25.1 MiB = 78.5 MiB konsole
Above is with two tabs open. Below is 18 tabs open. In the settings the memory limit is set to 192 MB (Default) Private + Shared = RAM used Program
61.9 MiB + 33.1 MiB = 95.0 MiB konsole
Using ps_mem.py [1] - I suggest using this instead of ps to avoid confusion around shared memory.currently considering trying out ratty, a terminal emulator with 3D graphics rendering capabilities.
I like xfce4-terminal as a compromise. Good bang for the memory buck.
I think if you can get use to tmux/screen you may like that better :)
set -g automatic-rename on
set -g automatic-rename-format '#{pane_current_command}'