bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#52298: 29.0.50; Frequent redisplay cycles induced by c-type-finder-t


From: Eli Zaretskii
Subject: bug#52298: 29.0.50; Frequent redisplay cycles induced by c-type-finder-timer-func timer in CC Mode
Date: Sun, 05 Dec 2021 09:46:29 +0200

It used to be the case that starting "emacs -Q" and disabling
blink-cursor-mode and global-eldoc-mode was enough to get me Emacs
that doesn't perform redisplay unless required.  To see this, do the
following with any Emacs up to and including Emacs 28:

  emacs -Q
  M-x blink-cursor-mode RET
  M-x global-eldoc-mode RET
  M-x trace-redisplay RET

(The last command is only available if you configured with
"--enable-checking=yes,glyphs".)  This would produce a few lines of
output on stderr, and then stop until you do something in Emacs, like
move the cursor with an arrow key.

This is no longer the case in Emacs 29.  There, if you visit a C file,
you will see a flurry of stderr messages about constant redisplay
cycles being forced.  It seems like the culprit is the function
'c-type-finder-timer-func', which is run from a timer at 10 Hz (!),
and which for some reason forces Emacs to perform a redisplay cycle
with that frequency.  The trace itself, viz.:

  redisplay_internal 0
  071a03c8 (xdisp.c): try_window_id 2
  redisplay_preserve_echo_area (8)

means that the processing induced by that timer function is far from
being trivial, which means something that this function does causes
Emacs to think some real change might have happened in the buffer.

Not even "emacs -Q -D" is enough to get rid of this
'c-type-finder-timer-func' timer in CC Mode buffers.

Is it possible to prevent this frequent timer from firing when no
changes have been done to the buffer?  And in any case, please try to
include some logic in that function to avoid whatever it does now to
force such frequent non-trivial redisplay cycles.  If nothing else,
laptop users will hate us if we release Emacs with this behavior.

In GNU Emacs 29.0.50 (build 297, i686-pc-mingw32)
 of 2021-12-04 built on HOME-C4E4A596F7
Repository revision: f247fa5d5ce7cb34f23c979c17b14c5713eb5490
Repository branch: master
Windowing system distributor 'Microsoft Corp.', version 5.1.2600
System Description: Microsoft Windows XP Service Pack 3 (v5.1.0.2600)

Configured using:
 'configure -C --prefix=/d/usr --with-wide-int
 --enable-checking=yes,glyphs 'CFLAGS=-O0 -gdwarf-4 -g3''

Configured features:
ACL GIF GMP GNUTLS HARFBUZZ JPEG JSON LCMS2 LIBXML2 MODULES NOTIFY
W32NOTIFY PDUMPER PNG RSVG SOUND THREADS TIFF TOOLKIT_SCROLL_BARS WEBP
XPM ZLIB

Important settings:
  value of $LANG: ENU
  locale-coding-system: cp1255

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message mailcap yank-media rmc puny
dired dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068
epg-config gnus-util rmail rmail-loaddefs auth-source cl-seq eieio
eieio-core cl-macs eieio-loaddefs password-cache json map
text-property-search time-date seq gv subr-x byte-opt bytecomp
byte-compile cconv mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader cl-loaddefs cl-lib sendmail rfc2047
rfc2045 ietf-drums mm-util mail-prsvr mail-utils cus-start cus-load
iso-transl tooltip eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode mwheel dos-w32 ls-lisp disp-table
term/w32-win w32-win w32-vars term/common-win tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu
timer select scroll-bar mouse jit-lock font-lock syntax font-core
term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite emoji-zwj charscript charprop case-table
epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice
button loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads w32notify w32 lcms2 multi-tty
make-network-process emacs)

Memory information:
((conses 16 65940 11920)
 (symbols 48 8784 1)
 (strings 16 23857 3044)
 (string-bytes 1 667119)
 (vectors 16 14295)
 (vector-slots 8 183967 12730)
 (floats 8 25 52)
 (intervals 40 273 68)
 (buffers 888 10))





reply via email to

[Prev in Thread] Current Thread [Next in Thread]