I ran a simple test: # time cat /tmp/file-with-100k-lines Using a fullscreen window (1600x1200) and profont (a bitmap-only font), I compared xfce4-terminal to a couple other terminals (mrxvt and roxterm). mrxvt: 1.051s roxterm: 0.906s xfce4-terminal: 30.236s Eyeballing it, I suspect that xfce4-terminal is drawing every single character, where the others moderate the output. e.g. when a large amount of data is in the queue, render several hundred bytes before refreshing the display. ...or maybe this is a libvte problem?
vte2's performance is terrible (due to a stupid bug in timing; no it's not drawing every character individually), vte3 is way better (see bug 11207).
Resolved by migrating to vte3.