Re: Low redisplay performance (23 regression)

From:

David Reitter

Subject:

Re: Low redisplay performance (23 regression)

Date:

Wed, 22 Apr 2009 11:50:52 -0400

On Apr 22, 2009, at 11:30 AM, Daniel Clemente wrote:

I haven't compared Emacs 22 and 23, but from a subjective point of
view I have noticed that latest Emacs 23 feels slow and updates too
much for a modern computer. Some particular problems I noticed
randomly:

- if I hold C-n, I don't see the cursor while it is moving down; I
only see it jump when I have released the key. C-p works faster.
This happened when I had lots of CEDET buffers open (not even parsing)

- just switching to an Emacs frame (from another window in the
window manager) paints the screen progressively; this happens in
tenths of second but so slowly that you can track the updated zone
while it moves from top to bottom. This can be due to the video
driver, X, window manager, …

- sometimes, the buffer is updated noticeably two times in
succession; this happened with org-mode files (latest org-mode from
Git). This could also be from Org.

I can corroborate these observations (subjectively FWIW) with
different modes such as SLIME and on NS (on OS X). So I don't think
it's anything system-related (drivers, X, etc).

Note that tabbar lowers the performance by a large factor. It seems
the function tabbar-buffer-update-groups is run after each keypress
which involves a movement on the buffer, a buffer change or a message.
Try to disable it temporarily. The problem of the visually lost C-n
went away when I turned it off.

To test how much it is called, something like this can be useful:

Thanks, but I don't use tabbar in this way (my branch is found here:
[1]), so this function doesn't get called.

Note that if I run tabbar, but just set header-line-format to
something simpler (without all those faces), then I get a substantial
speedup.

However, the point here is that these slowdowns with tabbar, SLIME,
org-mode and whatever did not occur in Emacs 22. This is going to be
bad for any user.