GNU bug report logs - #56393
Actually fix the long lines display bug

Previous Next

Package: emacs;

Reported by: Gregory Heytings <gregory <at> heytings.org>

Date: Tue, 5 Jul 2022 08:50:02 UTC

Severity: normal

Done: Gregory Heytings <gregory <at> heytings.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Gregory Heytings <gregory <at> heytings.org>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: gerd.moellmann <at> gmail.com, larsi <at> gnus.org, 56393 <at> debbugs.gnu.org
Subject: bug#56393: Actually fix the long lines display bug
Date: Sat, 09 Jul 2022 10:50:26 +0000
>> Font lock does slow things down, see the NEWS entry.  But it also slows 
>> things down on much smaller files (see the long-line-excerpt.xml file I 
>> sent you).  As I said, to me the slowdown of font locking is a separate 
>> problem, as is shown by the fact that turning it off removes the 
>> remaining slowdowns in many/most cases.  There are in fact four 
>> separate problems here:
>>
>> 1. slowdowns caused by long lines,
>>
>> 2. slowdowns caused by multibyte characters in long lines (which are 
>> not solved by solving 1),
>>
>> 3. slowdowns caused by font locking,
>>
>> 4. slowdowns caused by major and minor modes (pre and post-command 
>> hooks and the like).
>>
>> This bug "only" solves 1 and 2.  And as I said, I can try to look at 3 
>> if you want, but not now.
>
> I'm asking whether applying the "restriction" where we call 
> Vfontification_functions from the display engine won't also solve 3.
>

It doesn't, see again the long-line-excerpt.xml file I sent you.  It is 
only 30K long, which would be a typical size for a restriction, and 
editing that file is slow when font locking is on and fast when font 
locking is off.

What I would do (but I'm pretty sure you wouln't agree with that) is to 
measure the time taken by fontification-functions in 
handle_fontified_prop, and whenever that time is above a certain threshold 
(say 0.25 or 0.5 seconds), to set fontification-functions to nil in that 
buffer.  For example, if you load dictionary.json (with "y") and type C-e, 
fontification-functions take about 2 seconds to complete.

But fontification-functions are not the only problem here.  What I also 
observe is that, for example, moving in a fontified buffer takes (much) 
longer than moving in a non-fontified buffer.  For example, in 
long-line.xml, vertical-motion takes about 40 ms backward and 10 ms 
forward in a non-fontified buffer, and about 180 ms backward and 40 ms 
forward in a fontified buffer.




This bug report was last modified 3 years and 33 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.