Package: emacs;
Reported by: Davide Masserut <dm <at> mssdvd.com>
Date: Sun, 23 Feb 2025 15:29:02 UTC
Severity: minor
Found in version 31.0.50
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: help-debbugs <at> gnu.org (GNU bug Tracking System) To: Eli Zaretskii <eliz <at> gnu.org> Cc: tracker <at> debbugs.gnu.org Subject: bug#76504: closed (31.0.50; Excessive redisplay when display-line-numbers-mode is enabled) Date: Sun, 09 Mar 2025 09:25:01 +0000
[Message part 1 (text/plain, inline)]
Your message dated Sun, 09 Mar 2025 11:23:55 +0200 with message-id <86tt82h80k.fsf <at> gnu.org> and subject line Re: bug#76504: 31.0.50; Excessive redisplay when display-line-numbers-mode is enabled has caused the debbugs.gnu.org bug report #76504, regarding 31.0.50; Excessive redisplay when display-line-numbers-mode is enabled to be marked as done. (If you believe you have received this mail in error, please contact help-debbugs <at> gnu.org.) -- 76504: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=76504 GNU Bug Tracking System Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Davide Masserut <dm <at> mssdvd.com> To: bug-gnu-emacs <at> gnu.org Subject: 31.0.50; Excessive redisplay when display-line-numbers-mode is enabled Date: Sun, 23 Feb 2025 16:27:50 +0100[Message part 3 (text/plain, inline)]To reproduce: - Open a file with many lines - Enable display-line-numbers-mode - Hold down C-n On my T480s (i5-8350U) in power-saving mode, this results in choppy cursor movement. The built-in profiler shows that moving the cursor down through my 1200-row init file results in 25,174 redisplays when display-line-numbers-mode is enabled, compared to 2,193 when it is disabled. I have attached the profiler outputs.[disabled.txt (text/plain, inline)]2193 50% - redisplay_internal (C function) 77 1% - jit-lock-function 77 1% - jit-lock-fontify-now 76 1% - jit-lock--run-functions 76 1% - run-hook-wrapped 76 1% - #<byte-code-function B23> 76 1% - font-lock-fontify-region 75 1% - font-lock-default-fontify-region 62 1% - font-lock-fontify-keywords-region 33 0% - lisp--el-match-keyword 28 0% - lisp--el-funcall-position-p 25 0% - syntax-ppss 25 0% parse-partial-sexp 1 0% match-data 5 0% re-search-forward 10 0% - #<byte-code-function 811> 6 0% - eval 6 0% - elisp--font-lock-backslash 6 0% - syntax-ppss 6 0% parse-partial-sexp 4 0% put-text-property 9 0% lisp--match-hidden-arg 5 0% re-search-forward 4 0% - #<byte-code-function 192> 4 0% - lisp-mode--search-key 4 0% re-search-forward 1 0% - #<byte-code-function C1DB> 1 0% - lisp-mode--search-key 1 0% - re-search-forward 1 0% - internal--syntax-propertize 1 0% - syntax-propertize 1 0% elisp-mode-syntax-propertize 12 0% - font-lock-fontify-syntactically-region 12 0% - font-lock-default-fontify-syntactically 4 0% - lisp-font-lock-syntactic-face-function 2 0% - lisp-string-after-doc-keyword-p 1 0% - backward-sexp 1 0% - forward-sexp 1 0% - forward-sexp-default-function 1 0% backward-prefix-chars 1 0% looking-at 2 0% - lisp-string-in-doc-position-p 1 0% intern-soft 4 0% parse-partial-sexp 3 0% - syntax-ppss 3 0% parse-partial-sexp 1 0% put-text-property 1 0% - font-lock-extend-region-wholelines 1 0% syntax-propertize-wholelines 1 0% - font-lock-set-defaults 1 0% - derived-mode-p 1 0% provided-mode-derived-p 1 0% text-property-any 70 1% - eval 43 0% - if 38 0% frame-parameter 3 0% - display-graphic-p 1 0% framep-on-display 14 0% - unless 9 0% - if 7 0% - display-graphic-p 3 0% framep-on-display 1 0% #<byte-code-function 6F8> 5 0% - mode-line-eol-desc 3 0% coding-system-eol-type-mnemonic 2 0% assoc 3 0% - mode-line-window-control 1 0% window-dedicated-p 3 0% mode-line-frame-control 34 0% file-remote-p 22 0% - mode-line-default-help-echo 9 0% - window-at-side-p 4 0% - window-pixel-edges 4 0% - window-edges 1 0% window-normalize-window 3 0% window-normalize-window 3 0% minibuffer-window-active-p 1 0% window-frame 1 0% minibuffer-window 3 0% - redisplay--pre-redisplay-functions 3 0% - run-hook-with-args 2 0% - redisplay--update-region-highlight 1 0% redisplay--unhighlight-overlay-function 1312 30% - command-execute 886 20% - funcall-interactively 882 20% - next-line 862 19% - line-move 339 7% line-move-visual 169 3% - line-move-partial 85 1% - default-line-height 80 1% - default-font-height 9 0% - display-multi-font-p 3 0% - framep-on-display 1 0% terminal-live-p 2 0% - display-graphic-p 2 0% framep-on-display 53 1% - window-screen-lines 27 0% - default-line-height 27 0% default-font-height 24 0% - window-inside-pixel-edges 22 0% - window-edges 13 0% - window-current-scroll-bars 5 0% window-normalize-window 4 0% - frame-current-scroll-bars 3 0% window-normalize-frame 5 0% - window-inside-pixel-edges 5 0% - window-edges 1 0% - window-current-scroll-bars 1 0% frame-current-scroll-bars 36 0% - default-line-height 33 0% - default-font-height 2 0% - display-multi-font-p 2 0% - framep-on-display 1 0% terminal-live-p 12 0% - window-inside-pixel-edges 12 0% - window-edges 5 0% - window-current-scroll-bars 2 0% - frame-current-scroll-bars 1 0% frame-parameter 11 0% - truncated-partial-width-window-p 6 0% - window-full-width-p 1 0% window-normalize-window 2 0% window-normalize-window 15 0% - called-interactively-p 8 0% backtrace-frame 1 0% execute-extended-command 372 8% - byte-code 372 8% - read-extended-command 372 8% - read-extended-command-1 372 8% - completing-read-default 49 1% redisplay_internal (C function) 5 0% handle-shift-selection 1 0% interactive-form 717 16% Automatic GC 32 0% + internal-timer-start-idle 19 0% + jit-lock--antiblink-post-command 18 0% + undo-auto--add-boundary 11 0% + clear-minibuffer-message 8 0% + help-command-error-confusable-suggestions 7 0% eldoc-pre-command-refresh-echo-area 5 0% + tooltip-hide 3 0% eldoc-schedule-timer 2 0% internal-echo-keystrokes-prefix 1 0% + timer-event-handler 0 0% ...[enabled.txt (text/plain, inline)]25174 90% - redisplay_internal (C function) 90 0% - jit-lock-function 89 0% - jit-lock-fontify-now 88 0% - jit-lock--run-functions 88 0% - run-hook-wrapped 88 0% - #<byte-code-function E8A> 88 0% - font-lock-fontify-region 87 0% - font-lock-default-fontify-region 68 0% - font-lock-fontify-keywords-region 38 0% - lisp--el-match-keyword 29 0% - lisp--el-funcall-position-p 26 0% - syntax-ppss 25 0% parse-partial-sexp 1 0% #<byte-code-function 769> 1 0% - #<byte-code-function 1DB> 1 0% set-match-data 1 0% match-data 1 0% intern-soft 6 0% re-search-forward 2 0% match-string 1 0% intern-soft 14 0% lisp--match-hidden-arg 9 0% - #<byte-code-function 811> 8 0% - eval 8 0% - elisp--font-lock-backslash 8 0% - syntax-ppss 8 0% parse-partial-sexp 1 0% put-text-property 2 0% re-search-forward 2 0% - #<byte-code-function 192> 2 0% - lisp-mode--search-key 1 0% re-search-forward 1 0% - lisp--match-confusable-symbol-character 1 0% re-search-forward 17 0% - font-lock-fontify-syntactically-region 17 0% - font-lock-default-fontify-syntactically 6 0% parse-partial-sexp 5 0% - lisp-font-lock-syntactic-face-function 3 0% - lisp-string-after-doc-keyword-p 2 0% - backward-sexp 2 0% - forward-sexp 2 0% - forward-sexp-default-function 2 0% scan-sexps 1 0% - lisp-string-in-doc-position-p 1 0% looking-at 3 0% - syntax-ppss 2 0% parse-partial-sexp 1 0% #<byte-code-function 5BE> 1 0% looking-back 1 0% put-text-property 2 0% - font-lock-extend-region-wholelines 2 0% syntax-propertize-wholelines 1 0% next-single-property-change 73 0% - eval 53 0% - if 47 0% frame-parameter 5 0% - display-graphic-p 2 0% - framep-on-display 2 0% terminal-live-p 9 0% - unless 5 0% - if 3 0% - display-graphic-p 2 0% - framep-on-display 2 0% terminal-live-p 1 0% #<byte-code-function 6F8> 4 0% - mode-line-eol-desc 1 0% assoc 1 0% coding-system-eol-type-mnemonic 4 0% mode-line-frame-control 2 0% mode-line-window-control 29 0% file-remote-p 22 0% - mode-line-default-help-echo 11 0% - window-at-side-p 7 0% - window-pixel-edges 7 0% - window-edges 1 0% window-normalize-window 2 0% window-normalize-window 2 0% frame-selected-window 2 0% window-frame 1 0% minibuffer-window-active-p 12 0% - redisplay--pre-redisplay-functions 5 0% run-hook-with-args 2 0% selected-window 1 0% window-buffer 1812 6% - command-execute 1258 4% - funcall-interactively 1256 4% - next-line 1239 4% - line-move 675 2% line-move-visual 129 0% - line-move-partial 66 0% - default-line-height 63 0% - default-font-height 6 0% - display-multi-font-p 4 0% - framep-on-display 2 0% terminal-live-p 1 0% - display-graphic-p 1 0% framep-on-display 47 0% - window-screen-lines 25 0% - default-line-height 23 0% default-font-height 1 0% display-graphic-p 17 0% - window-inside-pixel-edges 16 0% - window-edges 2 0% window-current-scroll-bars 1 0% window-normalize-window 6 0% - window-inside-pixel-edges 6 0% - window-edges 2 0% - window-current-scroll-bars 2 0% - frame-current-scroll-bars 1 0% frame-parameter 36 0% - default-line-height 35 0% - default-font-height 3 0% display-multi-font-p 1 0% display-graphic-p 16 0% - window-inside-pixel-edges 15 0% - window-edges 4 0% - window-current-scroll-bars 3 0% - frame-current-scroll-bars 1 0% frame-parameter 1 0% window-normalize-window 5 0% - truncated-partial-width-window-p 3 0% window-full-width-p 14 0% - called-interactively-p 4 0% backtrace-frame 4 0% advice--called-interactively-skip 1 0% execute-extended-command 527 1% - byte-code 527 1% - read-extended-command 527 1% - read-extended-command-1 527 1% - completing-read-default 43 0% redisplay_internal (C function) 8 0% - command-execute 6 0% - funcall-interactively 4 0% - self-insert-command 1 0% undo-auto-amalgamate 2 0% - delete-backward-char 2 0% - use-region-p 2 0% region-active-p 2 0% list 2 0% - timer-event-handler 2 0% - apply 2 0% - blink-cursor-start 2 0% add-hook 3 0% interactive-form 1 0% handle-shift-selection 832 2% Automatic GC 23 0% + jit-lock--antiblink-post-command 12 0% + internal-timer-start-idle 10 0% + clear-minibuffer-message 10 0% + undo-auto--add-boundary 8 0% + help-command-error-confusable-suggestions 4 0% internal-echo-keystrokes-prefix 4 0% eldoc-schedule-timer 2 0% + timer-event-handler 2 0% eldoc-pre-command-refresh-echo-area 2 0% + tooltip-hide 0 0% ...[Message part 6 (text/plain, inline)]In GNU Emacs 31.0.50 (build 48, x86_64-pc-linux-gnu, GTK+ Version 3.24.48, cairo version 1.18.2) of 2025-02-23 built on T480s Repository revision: d4d60973e27442605612383743addff1c1a8e9fb Repository branch: master System Description: Arch Linux Configured using: 'configure -C --prefix /home/davide/.local --with-pgtk --disable-gc-mark-trace --enable-locallisppath=/usr/share/emacs/site-lisp/ 'CFLAGS=-march=native -O2' MAKEFLAGS=-j8' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG LCMS2 LIBOTF LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PGTK PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM GTK3 ZLIB Important settings: value of $LC_COLLATE: en_IE.UTF-8 value of $LC_CTYPE: en_IE.UTF-8 value of $LC_MESSAGES: en_IE.UTF-8 value of $LC_MONETARY: en_IE.UTF-8 value of $LC_NUMERIC: en_IE.UTF-8 value of $LC_TIME: en_IE.UTF-8 value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Info Minor modes in effect: global-git-commit-mode: t magit-auto-revert-mode: t save-place-mode: t global-auto-revert-mode: t server-mode: t editorconfig-mode: t recentf-mode: t corfu-popupinfo-mode: t corfu-history-mode: t global-corfu-mode: t corfu-mode: t marginalia-mode: t vertico-multiform-mode: t vertico-mouse-mode: t vertico-mode: t winner-mode: t repeat-mode: t override-global-mode: t savehist-mode: t minibuffer-depth-indicate-mode: t find-function-mode: t electric-pair-mode: t tooltip-mode: t global-eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tab-bar-mode: t file-name-shadow-mode: t isearch-fold-quotes-mode: t context-menu-mode: t global-font-lock-mode: t font-lock-mode: t undelete-frame-mode: t minibuffer-regexp-mode: t buffer-read-only: t size-indication-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t temp-buffer-resize-mode: t Load-path shadows: /home/davide/.emacs.d/elpa/magit-4.3.0/magit-autorevert hides /home/davide/.emacs.d/elpa/magit-section-4.3.0/magit-autorevert ~/src/org-pomodoro/org-pomodoro hides /home/davide/.emacs.d/elpa/org-pomodoro-20220318.1618/org-pomodoro ~/src/org-pomodoro/org-pomodoro-autoloads hides /home/davide/.emacs.d/elpa/org-pomodoro-20220318.1618/org-pomodoro-autoloads ~/src/org-pomodoro/org-pomodoro-pkg hides /home/davide/.emacs.d/elpa/org-pomodoro-20220318.1618/org-pomodoro-pkg /home/davide/.emacs.d/elpa/cmake-mode-20250114.1444/cmake-mode hides /usr/share/emacs/site-lisp/cmake-mode /home/davide/.emacs.d/elpa/modus-themes-4.6.0/theme-loaddefs hides /home/davide/.local/share/emacs/31.0.50/lisp/theme-loaddefs /home/davide/.emacs.d/elpa/org-9.7.23/ox-texinfo hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ox-texinfo /home/davide/.emacs.d/elpa/org-9.7.23/ol-info hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ol-info /home/davide/.emacs.d/elpa/org-9.7.23/org-crypt hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-crypt /home/davide/.emacs.d/elpa/org-9.7.23/ox-man hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ox-man /home/davide/.emacs.d/elpa/org-9.7.23/ob-tangle hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-tangle /home/davide/.emacs.d/elpa/org-9.7.23/org-inlinetask hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-inlinetask /home/davide/.emacs.d/elpa/org-9.7.23/org-list hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-list /home/davide/.emacs.d/elpa/org-9.7.23/ol-bbdb hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ol-bbdb /home/davide/.emacs.d/elpa/org-9.7.23/ob-C hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-C /home/davide/.emacs.d/elpa/org-9.7.23/org-pcomplete hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-pcomplete /home/davide/.emacs.d/elpa/org-9.7.23/ox-beamer hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ox-beamer /home/davide/.emacs.d/elpa/org-9.7.23/org-capture hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-capture /home/davide/.emacs.d/elpa/org-9.7.23/ob-ocaml hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-ocaml /home/davide/.emacs.d/elpa/org-9.7.23/org-fold hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-fold /home/davide/.emacs.d/elpa/org-9.7.23/org-element hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-element /home/davide/.emacs.d/elpa/org-9.7.23/ob-ref hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-ref /home/davide/.emacs.d/elpa/org-9.7.23/org-plot hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-plot /home/davide/.emacs.d/elpa/org-9.7.23/org-refile hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-refile /home/davide/.emacs.d/elpa/org-9.7.23/ob-plantuml hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-plantuml /home/davide/.emacs.d/elpa/org-9.7.23/ol-eshell hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ol-eshell /home/davide/.emacs.d/elpa/org-9.7.23/ob-table hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-table /home/davide/.emacs.d/elpa/org-9.7.23/org-duration hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-duration /home/davide/.emacs.d/elpa/org-9.7.23/ol-gnus hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ol-gnus /home/davide/.emacs.d/elpa/org-9.7.23/org-keys hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-keys /home/davide/.emacs.d/elpa/org-9.7.23/ob-screen hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-screen /home/davide/.emacs.d/elpa/org-9.7.23/ob-eshell hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-eshell /home/davide/.emacs.d/elpa/org-9.7.23/org-agenda hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-agenda /home/davide/.emacs.d/elpa/org-9.7.23/ob-groovy hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-groovy /home/davide/.emacs.d/elpa/org-9.7.23/org-datetree hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-datetree /home/davide/.emacs.d/elpa/org-9.7.23/org-element-ast hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-element-ast /home/davide/.emacs.d/elpa/org-9.7.23/ob-org hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-org /home/davide/.emacs.d/elpa/org-9.7.23/ob-awk hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-awk /home/davide/.emacs.d/elpa/org-9.7.23/org-loaddefs hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-loaddefs /home/davide/.emacs.d/elpa/org-9.7.23/org-macs hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-macs /home/davide/.emacs.d/elpa/org-9.7.23/ob-sql hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-sql /home/davide/.emacs.d/elpa/org-9.7.23/org-macro hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-macro /home/davide/.emacs.d/elpa/org-9.7.23/ox hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ox /home/davide/.emacs.d/elpa/org-9.7.23/org-cycle hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-cycle /home/davide/.emacs.d/elpa/org-9.7.23/org-compat hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-compat /home/davide/.emacs.d/elpa/org-9.7.23/ob-js hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-js /home/davide/.emacs.d/elpa/org-9.7.23/org-persist hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-persist /home/davide/.emacs.d/elpa/org-9.7.23/ob-core hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-core /home/davide/.emacs.d/elpa/org-9.7.23/ob-dot hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-dot /home/davide/.emacs.d/elpa/org-9.7.23/ob-ditaa hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-ditaa /home/davide/.emacs.d/elpa/org-9.7.23/ob-comint hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-comint /home/davide/.emacs.d/elpa/org-9.7.23/ox-icalendar hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ox-icalendar /home/davide/.emacs.d/elpa/org-9.7.23/ox-html hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ox-html /home/davide/.emacs.d/elpa/org-9.7.23/ob-lilypond hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-lilypond /home/davide/.emacs.d/elpa/org-9.7.23/ol-docview hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ol-docview /home/davide/.emacs.d/elpa/org-9.7.23/oc-basic hides /home/davide/.local/share/emacs/31.0.50/lisp/org/oc-basic /home/davide/.emacs.d/elpa/org-9.7.23/org-mobile hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-mobile /home/davide/.emacs.d/elpa/org-9.7.23/org-attach-git hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-attach-git /home/davide/.emacs.d/elpa/org-9.7.23/ox-odt hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ox-odt /home/davide/.emacs.d/elpa/org-9.7.23/ox-ascii hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ox-ascii /home/davide/.emacs.d/elpa/org-9.7.23/ob-sass hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-sass /home/davide/.emacs.d/elpa/org-9.7.23/ob-scheme hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-scheme /home/davide/.emacs.d/elpa/org-9.7.23/ob-shell hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-shell /home/davide/.emacs.d/elpa/org-9.7.23/ol-mhe hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ol-mhe /home/davide/.emacs.d/elpa/org-9.7.23/org-feed hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-feed /home/davide/.emacs.d/elpa/org-9.7.23/org-archive hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-archive /home/davide/.emacs.d/elpa/org-9.7.23/oc-biblatex hides /home/davide/.local/share/emacs/31.0.50/lisp/org/oc-biblatex /home/davide/.emacs.d/elpa/org-9.7.23/ob-sed hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-sed /home/davide/.emacs.d/elpa/org-9.7.23/oc-bibtex hides /home/davide/.local/share/emacs/31.0.50/lisp/org/oc-bibtex /home/davide/.emacs.d/elpa/org-9.7.23/ob-julia hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-julia /home/davide/.emacs.d/elpa/org-9.7.23/org-footnote hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-footnote /home/davide/.emacs.d/elpa/org-9.7.23/ol hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ol /home/davide/.emacs.d/elpa/org-9.7.23/org-entities hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-entities /home/davide/.emacs.d/elpa/org-9.7.23/oc-csl hides /home/davide/.local/share/emacs/31.0.50/lisp/org/oc-csl /home/davide/.emacs.d/elpa/org-9.7.23/org-fold-core hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-fold-core /home/davide/.emacs.d/elpa/org-9.7.23/org-attach hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-attach /home/davide/.emacs.d/elpa/org-9.7.23/org-src hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-src /home/davide/.emacs.d/elpa/org-9.7.23/ob-fortran hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-fortran /home/davide/.emacs.d/elpa/org-9.7.23/ob-makefile hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-makefile /home/davide/.emacs.d/elpa/org-9.7.23/oc-natbib hides /home/davide/.local/share/emacs/31.0.50/lisp/org/oc-natbib /home/davide/.emacs.d/elpa/org-9.7.23/org-timer hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-timer /home/davide/.emacs.d/elpa/org-9.7.23/ob-python hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-python /home/davide/.emacs.d/elpa/org-9.7.23/ob hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob /home/davide/.emacs.d/elpa/org-9.7.23/ol-man hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ol-man /home/davide/.emacs.d/elpa/org-9.7.23/ob-ruby hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-ruby /home/davide/.emacs.d/elpa/org-9.7.23/ol-doi hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ol-doi /home/davide/.emacs.d/elpa/org-9.7.23/ob-emacs-lisp hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-emacs-lisp /home/davide/.emacs.d/elpa/org-9.7.23/ob-octave hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-octave /home/davide/.emacs.d/elpa/org-9.7.23/org-num hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-num /home/davide/.emacs.d/elpa/org-9.7.23/ob-eval hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-eval /home/davide/.emacs.d/elpa/org-9.7.23/org-mouse hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-mouse /home/davide/.emacs.d/elpa/org-9.7.23/ob-lua hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-lua /home/davide/.emacs.d/elpa/org-9.7.23/ox-publish hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ox-publish /home/davide/.emacs.d/elpa/org-9.7.23/ob-perl hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-perl /home/davide/.emacs.d/elpa/org-9.7.23/org-id hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-id /home/davide/.emacs.d/elpa/org-9.7.23/ob-matlab hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-matlab /home/davide/.emacs.d/elpa/org-9.7.23/ob-forth hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-forth /home/davide/.emacs.d/elpa/org-9.7.23/org-colview hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-colview /home/davide/.emacs.d/elpa/org-9.7.23/org-protocol hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-protocol /home/davide/.emacs.d/elpa/org-9.7.23/oc hides /home/davide/.local/share/emacs/31.0.50/lisp/org/oc /home/davide/.emacs.d/elpa/org-9.7.23/org-habit hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-habit /home/davide/.emacs.d/elpa/org-9.7.23/org-lint hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-lint /home/davide/.emacs.d/elpa/org-9.7.23/ob-exp hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-exp /home/davide/.emacs.d/elpa/org-9.7.23/ob-calc hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-calc /home/davide/.emacs.d/elpa/org-9.7.23/ol-w3m hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ol-w3m /home/davide/.emacs.d/elpa/org-9.7.23/org-ctags hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-ctags /home/davide/.emacs.d/elpa/org-9.7.23/org-goto hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-goto /home/davide/.emacs.d/elpa/org-9.7.23/ob-css hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-css /home/davide/.emacs.d/elpa/org-9.7.23/ob-maxima hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-maxima /home/davide/.emacs.d/elpa/org-9.7.23/org-version hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-version /home/davide/.emacs.d/elpa/org-9.7.23/ob-R hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-R /home/davide/.emacs.d/elpa/org-9.7.23/ob-haskell hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-haskell /home/davide/.emacs.d/elpa/org-9.7.23/org-indent hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-indent /home/davide/.emacs.d/elpa/org-9.7.23/ob-latex hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-latex /home/davide/.emacs.d/elpa/org-9.7.23/ob-sqlite hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-sqlite /home/davide/.emacs.d/elpa/org-9.7.23/ol-irc hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ol-irc /home/davide/.emacs.d/elpa/org-9.7.23/ol-bibtex hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ol-bibtex /home/davide/.emacs.d/elpa/org-9.7.23/org-table hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-table /home/davide/.emacs.d/elpa/org-9.7.23/ox-md hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ox-md /home/davide/.emacs.d/elpa/org-9.7.23/ox-org hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ox-org /home/davide/.emacs.d/elpa/org-9.7.23/org-faces hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-faces /home/davide/.emacs.d/elpa/org-9.7.23/ol-rmail hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ol-rmail /home/davide/.emacs.d/elpa/org-9.7.23/ob-java hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-java /home/davide/.emacs.d/elpa/org-9.7.23/ol-eww hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ol-eww /home/davide/.emacs.d/elpa/org-9.7.23/ob-clojure hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-clojure /home/davide/.emacs.d/elpa/org-9.7.23/ob-processing hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-processing /home/davide/.emacs.d/elpa/org-9.7.23/org-tempo hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-tempo /home/davide/.emacs.d/elpa/org-9.7.23/ob-lob hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-lob /home/davide/.emacs.d/elpa/org-9.7.23/org hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org /home/davide/.emacs.d/elpa/org-9.7.23/ob-gnuplot hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-gnuplot /home/davide/.emacs.d/elpa/org-9.7.23/ox-latex hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ox-latex /home/davide/.emacs.d/elpa/org-9.7.23/ox-koma-letter hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ox-koma-letter /home/davide/.emacs.d/elpa/org-9.7.23/ob-lisp hides /home/davide/.local/share/emacs/31.0.50/lisp/org/ob-lisp /home/davide/.emacs.d/elpa/org-9.7.23/org-clock hides /home/davide/.local/share/emacs/31.0.50/lisp/org/org-clock Features: (shadow sort mail-extr emacsbug jka-compr tempel magit-extras bug-reference mm-archive face-remap magit-submodule magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log which-func imenu magit-diff smerge-mode diff git-commit log-edit pcvs-util add-log magit-core magit-autorevert magit-margin magit-transient magit-process with-editor shell pcomplete magit-mode transient benchmark magit-git magit-base magit-section llama vc-git files-x package-vc vc vc-dispatcher network-stream url-cache url-http url-auth url-gw nsm display-line-numbers finder-inf vertico-directory cursor-sensor vertico-repeat mule-util notmuch notmuch-tree notmuch-jump notmuch-hello notmuch-show notmuch-print notmuch-crypto notmuch-mua notmuch-message notmuch-draft notmuch-maildir-fcc notmuch-address notmuch-company notmuch-parser format-spec notmuch-wash diff-mode track-changes coolj goto-addr icalendar diary-lib diary-loaddefs cal-menu calendar cal-loaddefs notmuch-tag crm notmuch-lib notmuch-version notmuch-compat hl-line message sendmail yank-media dired dired-loaddefs rfc822 mml mailabbrev mail-utils gmm-utils mailheader mm-view mml-smime mml-sec epa derived epg rfc6068 epg-config gnus-util smime gnutls puny dig mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr saveplace autorevert filenotify server time-date checkdoc lisp-mnt flymake project compile text-property-search comint ansi-osc ansi-color thingatpt delight comp comp-cstr warnings comp-run comp-common editorconfig editorconfig-core editorconfig-core-handle editorconfig-fnmatch use-package-delight recentf tree-widget cape kind-icon svg-lib color svg dom xml corfu-popupinfo corfu-history corfu marginalia orderless vertico-multiform vertico-mouse vertico compat winner ring repeat modus-operandi-theme modus-themes edmacro kmacro cl-extra help-mode use-package-bind-key bind-key easy-mmode use-package-ensure use-package-core savehist mb-depth find-func elec-pair auth-source-pass cus-edit pp cus-load wid-edit auctex-autoloads tex-site cape-autoloads cdlatex-autoloads cmake-mode-autoloads corfu-autoloads csv-mode-autoloads dape-autoloads debbugs-autoloads delight-autoloads diff-hl-autoloads eat-autoloads eglot-tempel-autoloads eldoc-box-autoloads embark-consult-autoloads consult-autoloads embark-autoloads expreg-autoloads fish-mode-autoloads git-modes-autoloads gnuplot-autoloads go-mode-autoloads gptel-autoloads indent-bars-autoloads jinx-autoloads kind-icon-autoloads ledger-mode-autoloads lua-mode-autoloads magit-autoloads pcase magit-section-autoloads llama-autoloads marginalia-autoloads markdown-mode-autoloads modus-themes-autoloads notmuch-indicator-autoloads nov-autoloads esxml-autoloads kv-autoloads olivetti-autoloads orderless-autoloads org-autoloads org-pomodoro-autoloads alert-autoloads log4e-autoloads gntp-autoloads osm-autoloads password-store-autoloads qml-mode-autoloads rainbow-mode-autoloads show-font-autoloads svg-lib-autoloads systemd-autoloads rx tablist-autoloads tempel-autoloads terminal-here-autoloads tmr-autoloads ultra-scroll-autoloads vertico-autoloads vundo-autoloads info with-editor-autoloads wolfram-autoloads yaml-mode-autoloads package browse-url xdg url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs icons password-cache json subr-x map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/pgtk-win pgtk-win term/common-win touch-screen pgtk-dnd 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 nadvice seq simple cl-generic indonesian philippine 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 abbrev obarray oclosure cl-preloaded button loaddefs theme-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 dbusbind inotify dynamic-setting system-font-setting font-render-setting cairo gtk pgtk lcms2 multi-tty move-toolbar make-network-process tty-child-frames native-compile emacs) Memory information: ((conses 16 2070575 280433) (symbols 48 31497 4) (strings 32 321088 33304) (string-bytes 1 10795290) (vectors 16 69767) (vector-slots 8 787845 105968) (floats 8 315 5129) (intervals 56 239473 9104) (buffers 992 22))
[Message part 7 (message/rfc822, inline)]
From: Eli Zaretskii <eliz <at> gnu.org> To: dm <at> mssdvd.com Cc: 76504-done <at> debbugs.gnu.org Subject: Re: bug#76504: 31.0.50; Excessive redisplay when display-line-numbers-mode is enabled Date: Sun, 09 Mar 2025 11:23:55 +0200> Cc: 76504 <at> debbugs.gnu.org > Date: Sun, 23 Feb 2025 20:42:16 +0200 > From: Eli Zaretskii <eliz <at> gnu.org> > > > From: Davide Masserut <dm <at> mssdvd.com> > > Date: Sun, 23 Feb 2025 18:45:49 +0100 > > > > Eli Zaretskii <eliz <at> gnu.org> writes: > > > > > What is your keyboard auto-repeat rate on that system? > > > > 50 character per second, but I just did the same test with auto-repeat > > set at 25 c/s and got the same results (21,480 / 1,875 = 11.456). > > > > However, the difference in behaviour is much smaller, as you probably > > expected. > > [...] > > The same test with auto-repeat set to 50 c/s and the balanced power > > profile results in a 4.6 factor (10,053 / 2,165). > > With 50 or with 25 c/s? > > > > Anyway, what's important is the time it takes to scroll through a file > > > with and without line numbers. So please try the command below and > > > post the times it reports after scrolling through some large file with > > > and without the line numbers: > > > > > > (defun scroll-up-benchmark () > > > (interactive) > > > (let ((oldgc gcs-done) > > > (oldtime (float-time))) > > > (condition-case nil (while t (scroll-up) (redisplay)) > > > (error (message "GCs: %d Elapsed time: %f seconds" > > > (- gcs-done oldgc) (- (float-time) oldtime)))))) > > > > xdisp.c power-saver > > GCs: 492 Elapsed time: 55.600977 seconds > > GCs: 493 Elapsed time: 55.490811 seconds > > > > xdisp.c power-saver line numbers > > GCs: 488 Elapsed time: 66.925708 seconds > > GCs: 495 Elapsed time: 66.195398 seconds > > > > xdisp.c balanced > > GCs: 491 Elapsed time: 26.969390 seconds > > GCs: 492 Elapsed time: 27.098322 seconds > > > > xdisp.c balanced line numbers > > GCs: 494 Elapsed time: 32.596467 seconds > > GCs: 494 Elapsed time: 32.593883 seconds > > This is what I expect to see: line-number display slows down redisplay > by about 10% to 20%. > > I see no bug here. No further comments, so I'm closing this bug.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.