Subject: bug#23801: 25.0.95; term.el redraws extremely slow with bidi support enabled, and large buffers

From: Phil Sainty <[email-masked]>
Date: Mon, 20 Jun 2016 11:41:17 +1200

On 2016-06-20 04:26, Eli Zaretskii wrote:
> My problem is that I don't see these slow redraws.  I tried in a TTY
> session on a GNU/Linux system, using "ls ~" as the command inside
> term-mode (my home directory on that system produces a 1500-line list
> of files).  I don't see slow redraws, and don't see any perceptible
> speed-up when I set bidi-paragraph-direction to left-to-right.
> 
> Can you reproduce the problem using 'ls'?

No, the majority of commands do respond quickly.

I suspect you'll need to do something which repaints the entire 
terminal.

The examples I know of are starting the "mutt" email client (as per the
original report) or, for Debian, running "dpkg-reconfigure" for some
package with a configuration menu. I'm sure there will be plenty of
others, but I'm afraid I can't suggest a more commonly-available example
at the moment. If you have anything which provides a full-screen 
terminal
UI, however, give that a try.

Both previous examples are drawing a background colour (before 
eventually
drawing some text over the top, which happens quickly). Perhaps there 
are
a ton of escape sequences being processed for the colours? (I would have
thought the colouring was just a single ON and OFF wrapping the entire
redraw, but I don't know how these things actually work).

I've just tried installing and running "mc", which was another example I
thought I'd seen mentioned somewhere. That's GNU Midnight Commander.  
This
one is curious in that its initial redraw (with a background colour) is
pretty fast regardless; however when you quit (type "exit" at the 
prompt),
there's a slow redraw to get back to the shell (but also a bit faster 
than
my other examples). I guess it simply depends on exactly what each
application is doing. GNU Midnight Commander is a file manager. I think
"mc" followed by "exit" should be a pretty easy/safe test for you to 
try?