GNU logs - #76609, boring messages


Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#76609: 31.0.50; The 0.1s repeat timer is very CPU-intensive; it might be a bug?
Resent-From: Eval Exec <execvy@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 27 Feb 2025 13:57:02 +0000
Resent-Message-ID: <handler.76609.B.174066456420722 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 76609
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: 76609 <at> debbugs.gnu.org
X-Debbugs-Original-To: bug-gnu-emacs@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.174066456420722
          (code B ref -1); Thu, 27 Feb 2025 13:57:02 +0000
Received: (at submit) by debbugs.gnu.org; 27 Feb 2025 13:56:04 +0000
Received: from localhost ([127.0.0.1]:60390 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tneMq-0005Nm-GQ
	for submit <at> debbugs.gnu.org; Thu, 27 Feb 2025 08:56:04 -0500
Received: from lists.gnu.org ([2001:470:142::17]:33382)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <execvy@HIDDEN>) id 1tneMm-0005Mx-0C
 for submit <at> debbugs.gnu.org; Thu, 27 Feb 2025 08:55:58 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <execvy@HIDDEN>) id 1tneMg-0002p6-4b
 for bug-gnu-emacs@HIDDEN; Thu, 27 Feb 2025 08:55:50 -0500
Received: from mail-pl1-x642.google.com ([2607:f8b0:4864:20::642])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <execvy@HIDDEN>) id 1tneMc-0007fd-7Y
 for bug-gnu-emacs@HIDDEN; Thu, 27 Feb 2025 08:55:49 -0500
Received: by mail-pl1-x642.google.com with SMTP id
 d9443c01a7336-2235908a30aso11786695ad.3
 for <bug-gnu-emacs@HIDDEN>; Thu, 27 Feb 2025 05:55:45 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1740664544; x=1741269344; darn=gnu.org;
 h=mime-version:message-id:date:user-agent:subject:to:from:from:to:cc
 :subject:date:message-id:reply-to;
 bh=rdGemamxS/c9e/7otL3Da/G1omGDnWlOE8+wyVAXqJE=;
 b=RblRCvqjkkM3OOW6lvuWPGTzPydo/hEFRGdoJ7B4IZFKmFEZqqeogpje0HK4YCnM3Z
 zd8k4mGHbjC5gXm58RZb0KTsAPxUFo3cq3q4JJ9Ty7JU/AaPAvmZPQjamjzvLbgt5wHA
 +qpE7GCY/QAmqrhE1qJ8bWdxPS0MeYmSA4XOmcSYCQL4kgjuc7E+rYPgoc2r2uVaerM/
 LcucQhJH03nCAIv/7ca73jJBzNfcokSvYJiXpWn/xzpfIOfdr0eWr/pxbpdob8DABrq3
 8JumZUKHZ+f+L6qkux/u60G8klu8qtahvwZ23tPm+LKnwAzYF5x/JDRYQGONmiMIzA1V
 JvFA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1740664544; x=1741269344;
 h=mime-version:message-id:date:user-agent:subject:to:from
 :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
 bh=rdGemamxS/c9e/7otL3Da/G1omGDnWlOE8+wyVAXqJE=;
 b=NLh9Xs8qNmLSjkTL23pLIZe0DX5XBH8SojnaF7ofs6IGNn9kM7XFBh1vsK4WEGpeUd
 fxrm1hAjeAio8ueyfcqks8KtswXFSeUjUbsEWej2Y5h9xAIvkLL7NYR4o7KA7fSSiQ0z
 Jb+q7HVyAshdEnwpvRkR4Y+vfgjXOb4UqLWvBUkVJP+DMRvef0cS55cxIPUH/Rfp05j+
 tBwKEDK9vSP8URnCkMh0tWQdQZ0hIGTsZC6hqmQJ9L7+cICXOl7T6t58No3a+CdzIUYF
 VasD7Oi92KYCJC/02qEGW1j0eQqtgXl2FaeG/V99EN2bm62ttuCeSxIrw3dcjX1gR+oJ
 qyAQ==
X-Gm-Message-State: AOJu0Yz/CPDoReH6S24mfW3SBzhWlZu0Bx6evUoRskXZCQNGcxj6qSoh
 m9Gv8YHGW81a/Kkdb2UeKXYqXChB5ted7QM5Bv4Hs9+c1iyiniMh/x2CU2Q6c5I=
X-Gm-Gg: ASbGncs0uzhVsk9h056DcAyNDn9q6qVXzUeoLZjQupDev3C6E8X4NhhqgjUV4gzIZA0
 TGvJyvdr3xEWORQvGoQDEOdYLffT2E92I+kQIbemmhzL+wyjY5poP2RnRjinyW+q/Ku4tK8hPta
 3RnYKF40Cm2tEkw/OFXMBGbA7CB5o9OrNwx1nRbRvvdPVzop3GvBPIdeSfjveIqIALggVSNRV4N
 z7qFM1KgebzffVCbQdtO2b94GNhwsPMvjK7SyoXHBBwmRLq0OKQ4KXs5qyaEVrcIeqsFAYMmiVH
 L8wwbmlBPC3xvmtrVw==
X-Google-Smtp-Source: AGHT+IF1VXWrvuIb1H1sNsTYssddoJsn8N3xUNZrTWOXyP2TU4uqkMIBD7cE7sOFfOJUPs8mR3Vuqw==
X-Received: by 2002:a17:903:18a:b0:223:4242:f821 with SMTP id
 d9443c01a7336-2234242f956mr69405385ad.42.1740664543501; 
 Thu, 27 Feb 2025 05:55:43 -0800 (PST)
Received: from localhost ([154.201.95.128]) by smtp.gmail.com with ESMTPSA id
 d9443c01a7336-223501fa8f1sm14553125ad.90.2025.02.27.05.55.42
 for <bug-gnu-emacs@HIDDEN>
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 27 Feb 2025 05:55:43 -0800 (PST)
From: Eval Exec <execvy@HIDDEN>
User-Agent: mu4e 1.12.8; emacs 31.0.50
Date: Thu, 27 Feb 2025 21:55:40 +0800
Message-ID: <87h64flcf7.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
Received-SPF: pass client-ip=2607:f8b0:4864:20::642;
 envelope-from=execvy@HIDDEN; helo=mail-pl1-x642.google.com
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001,
 RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 1.0 (+)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.0 (/)


Hello,

I a 0.1 s repeat timer in emacs -Q, then Emacs's the cpu usage is 30% ~
70%.
I think it's a bug.

You can reproduce it by:

(defun exec/emacs-lisp-machine-update()
  ;; do nothing
)
(progn
  (defvar exec/emacs-lisp-machine-timer nil)
  (when (timerp exec/emacs-lisp-machine-timer)
  (cancel-timer exec/emacs-lisp-machine-timer))
  (setq exec/emacs-lisp-machine-timer
  (run-with-timer 0.0 0.1 'exec/emacs-lisp-machine-update))
)


Then you will notice, the Emacs's cpu usage is 30% ~ 70, or you can
chang 0.1 to 0.05, 0.01 to feel the high cpu usage.

Eval Exec



In GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
 3.24.43, cairo version 1.18.2) of 2025-02-27 built on Mufasa
Repository revision: 5815bd52279fdedc752f9f92ace86f8243fbd604
Repository branch: master
System Description: NixOS 24.11 (Vicuna)

Configured using:
 'configure 'CFLAGS=-O3 -march=native'
 CPPFLAGS=-I/home/exec/soft/mps_artifacts_O3
 LDFLAGS=-I/home/exec/soft/mps_artifacts_O3
 --prefix=/home/exec/Projects/git.savannah.gnu.org/git/emacs-build/master-5815bd52279fdedc752f9f92ace86f8243fbd604-O3
 --with-imagemagick --with-mps=yes --with-modules --with-pgtk
 --with-cairo --with-cairo-xcb --without-compress-install
 --with-mailutils --with-tree-sitter --with-xinput2
 --with-native-compilation=aot --enable-link-time-optimization
 --with-file-notification=inotify'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ
IMAGEMAGICK JPEG LCMS2 LIBOTF 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: C
  value of $LC_MONETARY: en_US.UTF-8
  value of $LC_NUMERIC: en_US.UTF-8
  value of $LC_TIME: en_US.UTF-8
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=fcitx
  locale-coding-system: utf-8-unix

Major mode: ELisp/l

Minor modes in effect:
  restore-point-mode: t
  global-atomic-chrome-edit-mode: t
  marginalia-mode: t
  rainbow-mode: t
  elisp-autofmt-mode: t
  highlight-defined-mode: t
  elisp-def-mode: t
  highlight-numbers-mode: t
  hes-mode: t
  rainbow-delimiters-mode: t
  breadcrumb-local-mode: t
  copilot-mode: t
  keycast-tab-bar-mode: t
  vertico-truncate-mode: t
  vertico-multiform-mode: t
  vertico-mode: t
  telega-root-auto-fill-mode: t
  telega-contact-birthdays-mode: t
  telega-active-video-chats-mode: t
  telega-active-locations-mode: t
  telega-patrons-mode: t
  telega-active-stories-mode: t
  tab-line-nerd-icons-global-mode: t
  global-tab-line-mode: t
  tab-line-mode: t
  org-roam-db-autosync-mode: t
  global-org-modern-mode: t
  mu4e-modeline-mode: t
  global-git-commit-mode: t
  treemacs-git-commit-diff-mode: t
  treemacs-project-follow-mode: t
  treemacs-filewatch-mode: t
  treemacs-follow-mode: t
  treemacs-git-mode: t
  treemacs-fringe-indicator-mode: t
  global-hungry-delete-mode: t
  hungry-delete-mode: t
  global-anzu-mode: t
  anzu-mode: t
  engine-mode: t
  symex-mode: t
  global-evil-surround-mode: t
  evil-surround-mode: t
  global-diff-hl-show-hunk-mouse-mode: t
  diff-hl-show-hunk-mouse-mode: t
  diff-hl-flydiff-mode: t
  diff-hl-margin-local-mode: t
  diff-hl-margin-mode: t
  global-diff-hl-mode: t
  diff-hl-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  corfu-terminal-mode: t
  corfu-popupinfo-mode: t
  global-corfu-mode: t
  corfu-mode: t
  burly-tabs-mode: t
  global-form-feed-st-mode: t
  form-feed-st-mode: t
  eat-eshell-mode: t
  sly-symbol-completion-mode: t
  super-save-mode: t
  savehist-mode: t
  which-key-mode: t
  super-hint-xref-mode: t
  super-hint-rg-mode: t
  windmove-mode: t
  server-mode: t
  save-place-mode: t
  recentf-mode: t
  winner-mode: t
  persistent-scratch-autosave-mode: t
  global-dash-fontify-mode: t
  dash-fontify-mode: t
  nerd-icons-completion-mode: t
  sudo-edit-indicator-mode: t
  global-evil-visualstar-mode: t
  evil-visualstar-mode: t
  evil-commentary-mode: t
  global-evil-mc-mode: t
  evil-mc-mode: t
  evil-lion-mode: t
  global-evil-collection-unimpaired-mode: t
  evil-collection-unimpaired-mode: t
  buffer-face-mode: t
  TeX-PDF-mode: t
  display-line-numbers-mode: t
  electric-pair-mode: t
  el-patch-use-package-mode: t
  global-auto-revert-mode: t
  evil-mode: t
  evil-local-mode: t
  general-override-mode: t
  minions-mode: t
  elpaca-use-package-mode: t
  override-global-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tab-bar-mode: t
  file-name-shadow-mode: t
  context-menu-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  minibuffer-regexp-mode: t
  column-number-mode: -1
  line-number-mode: -1
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  hs-minor-mode: t

Load-path shadows:
/home/exec/.emacs.d/elpaca/builds/lispy/elpa hides /home/exec/.emacs.d/elpaca/builds/ivy/elpa
/home/exec/.emacs.d/elpaca/builds/modus-themes/theme-loaddefs hides /home/exec/.emacs.d/elpaca/builds/standard-themes/theme-loaddefs
/home/exec/.emacs.d/elpaca/builds/modus-themes/theme-loaddefs hides /home/exec/.emacs.d/elpaca/builds/ef-themes/theme-loaddefs
/home/exec/.emacs.d/elpaca/builds/modus-themes/theme-loaddefs hides /home/exec/Projects/git.savannah.gnu.org/git/emacs-build/master-5815bd52279fdedc752f9f92ace86f8243fbd604-O3/share/emacs/31.0.50/lisp/theme-loaddefs
/home/exec/.emacs.d/elpaca/builds/transient/transient hides /home/exec/Projects/git.savannah.gnu.org/git/emacs-build/master-5815bd52279fdedc752f9f92ace86f8243fbd604-O3/share/emacs/31.0.50/lisp/transient

Features:
(shadow sort mail-extr evil-collection-shortdoc shortdoc info-colors
cus-start tabify descr-text evil-collection-woman woman gptel-context
gptel-transient gptel-curl toml-ts-mode evil-collection-timer-list
timer-list expand-region yaml-mode-expansions subword-mode-expansions
text-mode-expansions cc-mode-expansions the-org-mode-expansions
python-el-fgallina-expansions latex-mode-expansions js2-mode-expansions
js-mode-expansions web-mode-expansions html-mode-expansions
clojure-mode-expansions er-basic-expansions expand-region-core
expand-region-custom dabbrev cape lsp-diagnostics lsp-modeline lsp-icons
nerd-icons-dired diredfl lsp-zig lsp-yang lsp-yaml lsp-xml lsp-wgsl
lsp-volar lsp-vimscript lsp-vhdl lsp-vetur lsp-html lsp-verilog lsp-vala
lsp-v lsp-typespec lsp-typeprof lsp-ttcn3 lsp-ts-query lsp-trunk
lsp-toml lsp-tilt lsp-tex lsp-terraform lsp-svelte lsp-steep lsp-sqls
lsp-sql lsp-sorbet lsp-solidity lsp-solargraph lsp-semgrep lsp-ruff
lsp-ruby-syntax-tree lsp-ruby-lsp lsp-rubocop lsp-roslyn lsp-roc lsp-rf
lsp-remark lsp-racket lsp-r lsp-qml lsp-pyright lsp-pylsp lsp-pyls
lsp-pwsh lsp-purescript lsp-pls lsp-php lsp-perlnavigator lsp-perl
lsp-openscad lsp-ocaml lsp-nushell lsp-nix lsp-nim lsp-nginx
lsp-nextflow lsp-move lsp-mojo lsp-mint lsp-meson lsp-mdx lsp-matlab
lsp-marksman lsp-markdown lsp-magik lsp-fennel lsp-lua lsp-lisp
lsp-kubernetes-helm lsp-kotlin lsp-json lsp-jq lsp-javascript lsp-idris
lsp-haxe lsp-hack lsp-groovy lsp-graphql lsp-golangci-lint lsp-glsl
lsp-gleam lsp-gdscript lsp-fsharp lsp-futhark lsp-fortran lsp-eslint
lsp-erlang lsp-emmet lsp-elm lsp-elixir lsp-earthly lsp-dockerfile
lsp-dhall lsp-d lsp-cypher lsp-cucumber lsp-copilot lsp-css lsp-c3
lsp-csharp lsp-crystal lsp-credo lsp-cobol lsp-cmake lsp-clojure
lsp-clangd lsp-bufls lsp-go lsp-completion lsp-beancount lsp-bash
lsp-awk lsp-autotools lsp-astro lsp-asm lsp-ansible lsp-angular lsp-ada
lsp-actionscript vertico-grid symbol-overlay eee org-indent org-download
image-file image-converter oc-basic ol-eww ol-rmail ol-mhe ol-irc
ol-info ol-gnus nnselect ol-docview evil-collection-doc-view doc-view
jka-compr ol-bibtex bibtex ol-bbdb ol-w3m ol-doi org-link-doi gptel-org
gptel-gemini gptel-ollama gptel-openai consult-dir-autoloads
consult-ag-autoloads restore-point evil-collection-atomic-chrome
atomic-chrome marginalia rainbow-mode elisp-autofmt highlight-defined
elisp-def evil-collection-ert ert highlight-numbers parent-mode
highlight-escape-sequences rainbow-delimiters breadcrumb copilot
copilot-balancer editorconfig editorconfig-core editorconfig-core-handle
editorconfig-fnmatch jsonrpc keycast zig-mode reformatter empv
vertico-truncate vertico-posframe vertico-multiform
evil-collection-vertico vertico lsp-uniteai nix-ts-mode go-translate
gt-text-utility gt-engine-echo gt-engine-libre gt-engine-chatgpt
gt-engine-youdao gt-engine-stardict gt-engine-deepl gt-engine-google-rpc
gt-engine-google gt-engine-bing gt-extension gt-faces gt-core gt-httpx
sdcv cap-words superword subword evil-collection-telega telega-obsolete
telega telega-tdlib-events telega-match telega-root telega-info
telega-chat telega-modes telega-company telega-emoji telega-user
telega-notifications telega-voip telega-msg telega-story telega-webpage
telega-tme telega-sticker telega-vvnote telega-ffplay telega-i18n
telega-sort telega-filter telega-ins telega-inline telega-util
telega-folders telega-topic telega-media telega-tdlib telega-server
telega-core telega-customize emacsbug tab-line-nerd-icons
evil-collection-imenu-list imenu-list hide-comnt hideshow tab-line
rust-utils rust-mode-treesitter rust-ts-mode rust-mode rust-playpen
rust-cargo rust-common rust-rustfmt rust-compile cargo cargo-process
toml rg-info-hack rg-menu rg-ibuffer rg-result wgrep-rg rg-history
ibuf-ext evil-collection-ibuffer ibuffer ibuffer-loaddefs rg-header
evil-collection-ultra-scroll ultra-scroll pixel-scroll cua-base
org-sliced-images evil-collection-org-roam org-roam-migrate org-roam-log
org-roam-mode org-roam-capture org-roam-id org-roam-node org-roam-db
emacsql-sqlite-builtin sqlite org-roam-utils org-roam-compat org-roam
org-capture org-journal org-crypt cal-iso org-modern orderless
evil-collection-mu4e mu4e mu4e-org mu4e-notification mu4e-main smtpmail
mu4e-view mu4e-mime-parts mu4e-headers mu4e-thread mu4e-actions
mu4e-compose mu4e-draft gnus-msg gnus-art mm-uu mml2015 gnus-sum
gnus-group gnus-undo gnus-start gnus-dbus gnus-cloud nnimap nnmail
mail-source utf7 nnoo gnus-spec gnus-int gnus-range gnus-win mu4e-search
mu4e-lists mu4e-bookmarks mu4e-mark mu4e-message flow-fill mu4e-contacts
mu4e-update mu4e-folders mu4e-context mu4e-query-items mu4e-server
mu4e-modeline mu4e-vars mu4e-helpers mu4e-config mu4e-window ido
mu4e-obsolete cyphejor rfc-mode string-inflection systemd minuet
pr-review pr-review-render pr-review-action pr-review-input
pr-review-api pr-review-common evil-collection-forge forge-repos
forge-tablist forge-topics forge-commands forge-semi forge-bitbucket
buck forge-gogs gogs forge-gitea gtea forge-gitlab glab forge-github
ghub-graphql treepy gsexp ghub forge-forgejo forge-notify forge-revnote
forge-pullreq forge-issue forge-topic eieio-custom bug-reference
forge-post forge-repo forge forge-core forge-db closql emacsql-sqlite
emacsql emacsql-compiler eieio-base treemacs-magit magit-bookmark
evil-collection-magit 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 evil-collection-magit-repos magit-repos magit-apply
magit-wip magit-log which-func magit-diff git-commit magit-core
magit-autorevert magit-margin magit-transient magit-process
evil-collection-with-editor with-editor magit-mode magit-git magit-base
dap-java dap-mode dap-tasks dap-launch lsp-docker yaml dap-overlays
lsp-java treemacs-nerd-icons lsp-treemacs lsp-treemacs-generic
lsp-treemacs-themes treemacs-treelib treemacs-git-commit-diff-mode
treemacs-project-follow-mode treemacs-mouse-interface zoom treemacs
treemacs-header-line treemacs-compatibility treemacs-mode
treemacs-bookmarks treemacs-tags treemacs-interface treemacs-persistence
treemacs-filewatch-mode treemacs-follow-mode treemacs-rendering
treemacs-annotations treemacs-async treemacs-workspaces treemacs-dom
treemacs-visuals treemacs-fringe-indicator treemacs-faces treemacs-icons
treemacs-scope treemacs-themes treemacs-core-utils pfuture
treemacs-logging treemacs-customization treemacs-macros consult-lsp
lsp-ui lsp-ui-flycheck lsp-ui-doc evil-collection-lsp-ui-imenu
lsp-ui-imenu lsp-ui-peek lsp-ui-sideline lsp-rust lsp-semantic-tokens
lsp-mode network-stream evil-collection-markdown-mode markdown-mode
lsp-ui-util lsp-protocol llm-prompt groovy-mode iedit iedit-lib
evil-collection-hungry-delete hungry-delete minibuffer-header
gptel-quick gotest fzf flycheck-clj-kondo pos-tip consult-flycheck
evil-collection-flycheck flycheck evil-anzu anzu engine-mode
evil-collection-ement ement-room-list taxy-magit-section taxy ement
ement-notifications ement-notify ement-room ement-lib ement-api
ement-structs ement-macros dns llm-ollama llm-provider-utils llm-models
llm-request-plz plz-event-source plz-media-type plz llm symex symex-evil
symex-evil-support symex-hydra symex-transformations
symex-transformations-lisp symex-utils evil-cleverparens
evil-cleverparens-text-objects evil-cleverparens-util smartparens
loadhist evil-surround symex-misc symex-interface-builtins
symex-interface-fennel symex-interface-arc symex-interface-common-lisp
symex-interface-clojure symex-interface-scheme symex-interface-racket
symex-interface-elisp symex-interop symex-interface symex-traversals
symex-dsl symex-evaluator symex-computations symex-primitives symex-ts
symex-utils-ts symex-transformations-ts symex-primitives-lisp symex-data
symex-ui symex-custom evil-collection-lispy lispy le-clojure delsel
lispy-inline avy lispy-tags zoutline combobulate evil-collection-elfeed
elfeed-show elfeed-search elfeed-csv elfeed elfeed-curl elfeed-log
elfeed-db elfeed-lib xml-query dired-git-info dired-hacks dired-preview
diff-hl-show-hunk diff-hl-inline-popup diff-hl-flydiff diff-hl-margin
diff-hl-dired evil-collection-diff-hl diff-hl evil-collection-log-view
log-view evil-collection-log-edit log-edit add-log pcvs-util
evil-collection-vc-dir vc-dir ewoc evil-collection-cmake-mode cmake-mode
consult-yasnippet yasnippet-capf yasnippet-snippets yasnippet kind-icon
svg-lib corfu-terminal popon corfu-popupinfo corfu-indexed
evil-collection-corfu corfu paredit clojure-ts-mode
evil-collection-cider cider tramp-sh cider-debug cider-browse-ns
cider-mode cider-xref-backend cider-find cider-inspector
cider-completion cider-profile cider-eval cider-jar cider-repl-history
pulse cider-repl cider-resolve cider-test cider-overlays
cider-stacktrace cider-doc cider-browse-spec cider-clojuredocs
cider-eldoc cider-docstring cider-client cider-common
cider-completion-context cider-connection cider-popup sesman-browser
nrepl-client cider-util sesman queue nrepl-dict spinner clojure-mode
chatgpt-shell chatgpt-shell-openrouter chatgpt-shell-perplexity
chatgpt-shell-openai chatgpt-shell-ollama chatgpt-shell-kagi
chatgpt-shell-google chatgpt-shell-anthropic
chatgpt-shell-prompt-compose evil-collection-smerge-mode smerge-mode
diff shell-maker ielm evil-collection-eshell eshell em-prompt esh-mode
esh-var esh-cmd esh-ext esh-proc esh-opt esh-io esh-arg esh-module
esh-module-loaddefs esh-util bookmark-in-project bookmark+ bookmark+-key
bookmark+-1 bookmark+-bmu bookmark+-lit babashka parseedn
parseclj-parser parseclj-lex parseclj-alist cnfonts burly-tabs burly
frameset compile-multi form-feed-st google-this echo-bar fcitx
evil-collection-eat eat term/xterm xterm evil-collection-term term ehelp
ox-reveal ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util
rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex
ox-icalendar org-agenda ox-html table ox-ascii ox-publish ox org-attach
org-element org-persist org-id org-refile org-element-ast inline
avl-tree htmlize evil-collection-explain-pause-mode explain-pause-mode
explain-pause-top explain-pause-log-to-socket evil-collection-profiler
profiler weather-metno solar cal-dst url-cache display-wttr kdeconnect
crux pest-mode popwin modus-themes blackboard-theme standard-themes
nimbus-theme tok-theme danneskjold-theme srcery-theme subatomic256-theme
iscroll xml+ evil-textobj-tree-sitter
evil-textobj-tree-sitter-thing-at-point evil-textobj-tree-sitter-core
tree-sitter tree-sitter-load tree-sitter-cli tsc tsc-dyn tsc-dyn-get
dired-aux tsc-obsolete ctable line-reminder ov ht fringe-helper
solarized-theme solarized solarized-faces sqlup-mode evil-collection-bm
bm zen-mode evil-collection-sly sly sly-completion sly-buttons
sly-messages sly-common evil-collection-apropos apropos
evil-collection-arc-mode arc-mode archive-mode hyperspec sicp
base16-theme idea-darkula-theme hybrid-reverse-theme material-theme
doom-themes doom-themes-base nyan-mode organic-green-theme inkpot-theme
github-dark-vscode-theme almost-mono-themes cyberpunk-theme soothe-theme
soothe-tva zenburn-theme mindre-theme kaolin-themes kaolin-themes-lib
tron-legacy-theme wildcharm-theme atom-one-dark-theme parchment-theme
autothemer visual-fill-column transpose-frame gameoflife
evil-collection-docker docker docker-context docker-volume
docker-network docker-image docker-container docker-faces docker-core
docker-compose docker-process docker-utils docker-group dockerfile-mode
emacs-everywhere cus-dir dumb-jump evil-collection-popup popup websocket
bindat bing-dict bing-dict-cache hl-todo atom-dark-theme ef-themes
uwu-theme vagrant evil-collection-ag ag vc-svn find-dired alarm-clock
alert notifications gntp pinentry evil-collection-hackernews hackernews
evil-collection-notmuch 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 notmuch-wash coolj goto-addr icalendar diary-lib
diary-loaddefs notmuch-tag notmuch-lib notmuch-compat message sendmail
yank-media rfc822 mml mailabbrev gmm-utils mm-view mml-smime mml-sec
smime gnutls dig mm-decode mm-bodies mm-encode fussy flx affe
evil-collection-consult consult clang-format apheleia apheleia-rcs
apheleia-dp apheleia-formatters apheleia-utils apheleia-log
apheleia-formatter-context vimrc-mode gnuplot olivetti super-save
evil-collection-helpful helpful cc-langs trace cl-print
evil-collection-edebug edebug evil-collection-debug debug backtrace
info-look evil-collection-info info help-fns radix-tree
evil-collection-elisp-refs elisp-refs solidity-mode solidity-common
evil-collection-git-timemachine git-timemachine web-mode disp-table
evil-collection-go-mode go-mode find-file evil-collection-js2-mode
js2-mode etags fileloop zig-mode-autoloads reformatter-autoloads
empv-autoloads yasnippet-snippets-autoloads marginalia-autoloads
vertico-truncate-autoloads vertico-posframe-autoloads vertico-autoloads
lsp-uniteai-autoloads nix-ts-mode-autoloads go-translate-autoloads
alert-autoloads gntp-autoloads sdcv-autoloads telega-autoloads
tab-line-nerd-icons-autoloads keycast-autoloads rust-mode-autoloads
cargo-autoloads toml-autoloads rg-autoloads writeroom-mode-autoloads
nov-autoloads esxml-autoloads kv-autoloads ultra-scroll-autoloads
pdf-tools-autoloads org-sliced-images-autoloads
consult-org-roam-autoloads org-roam-autoloads org-journal-autoloads
org-download-autoloads org-modern-autoloads orderless-autoloads
mu4e-autoloads cyphejor-autoloads rfc-mode-autoloads
string-inflection-autoloads webpaste-autoloads systemd-autoloads
minuet-autoloads pr-review-autoloads forge-autoloads closql-autoloads
emacsql-autoloads ghub-autoloads treepy-autoloads lsp-java-autoloads
dap-mode-autoloads bui-autoloads lsp-treemacs-autoloads
lsp-docker-autoloads yaml-autoloads lsp-pyright-autoloads
consult-lsp-autoloads lsp-ui-autoloads lsp-mode-autoloads
groovy-mode-autoloads imenu-list-autoloads hungry-delete-autoloads
hide-comnt-autoloads minibuffer-header-autoloads gptel-quick-autoloads
gptel-autoloads gotest-autoloads fzf-autoloads
flycheck-golangci-lint-autoloads flycheck-clj-kondo-autoloads
pos-tip-autoloads consult-flycheck-autoloads flycheck-rust-autoloads
flycheck-posframe-autoloads flycheck-autoloads evil-anzu-autoloads
anzu-autoloads engine-mode-autoloads ement-autoloads
taxy-magit-section-autoloads taxy-autoloads embark-consult-autoloads
embark-autoloads ellama-autoloads llm-autoloads
plz-event-source-autoloads plz-media-type-autoloads plz-autoloads
symex-autoloads tree-sitter-autoloads tsc-autoloads lispy-autoloads
iedit-autoloads swiper-autoloads ivy-autoloads zoutline-autoloads
evil-cleverparens-autoloads smartparens-autoloads combobulate-autoloads
combobulate-go combobulate-json combobulate-yaml combobulate-css
combobulate-js-ts combobulate-python combobulate-html combobulate-toml
combobulate-cursor multiple-cursors mc-separate-operations
rectangular-region-mode mc-mark-pop mc-edit-lines
mc-hide-unmatched-lines-mode mc-mark-more sgml-mode mc-cycle-cursors
multiple-cursors-core combobulate-query savehist evil-collection-scheme
scheme combobulate-ui combobulate-display combobulate-ztree
combobulate-envelope combobulate-manipulation evil-collection-python
python combobulate-procedure combobulate-navigation combobulate-misc
combobulate-setup tempo combobulate-interface combobulate-settings
combobulate-rules elisp-def-autoloads elfeed-tube-mpv-autoloads
elfeed-tube-autoloads elfeed-autoloads eee-autoloads
dired-git-info-autoloads dired-hacks-autoloads dired-preview-autoloads
diredfl-autoloads diff-hl-autoloads cmake-mode-autoloads
consult-yasnippet-autoloads yasnippet-capf-autoloads yasnippet-autoloads
cape-autoloads kind-icon-autoloads svg-lib-autoloads
corfu-terminal-autoloads popon-autoloads corfu-autoloads
copilot-autoloads copilot-chat-autoloads paredit-autoloads
clojure-ts-mode-autoloads cider-autoloads clojure-mode-autoloads
queue-autoloads spinner-autoloads sesman-autoloads
chatgpt-shell-autoloads shell-maker-autoloads breadcrumb-autoloads
bookmark-in-project-autoloads bookmark+-autoloads babashka-autoloads
parseedn-autoloads parseclj-autoloads aider-autoloads
mediawiki-autoloads markdown-mode-autoloads treemacs-magit-autoloads
magit-autoloads with-editor-autoloads nerd-icons-ibuffer-autoloads
treemacs-nerd-icons-autoloads treemacs-autoloads pfuture-autoloads
cfrs-autoloads cnfonts-autoloads burly-autoloads compile-multi-autoloads
form-feed-st-autoloads google-this-autoloads echo-bar-autoloads
zoom-autoloads fcitx-autoloads eat-autoloads vterm-autoloads
chatgpt-autoloads polymode-autoloads ox-reveal-autoloads
htmlize-autoloads wordreference-autoloads explain-pause-mode-autoloads
weather-metno-autoloads display-wttr-autoloads kdeconnect-autoloads
emms-autoloads crux-autoloads pest-mode-autoloads popwin-autoloads
modus-themes-autoloads blackboard-theme-autoloads
standard-themes-autoloads nimbus-theme-autoloads tok-theme-autoloads
danneskjold-theme-autoloads srcery-theme-autoloads
subatomic256-theme-autoloads iscroll-autoloads xml+-autoloads
multiple-cursors-autoloads evil-textobj-tree-sitter-autoloads
evil-numbers-autoloads ctable-autoloads line-reminder-autoloads
fringe-helper-autoloads ov-autoloads solarized-theme-autoloads
sqlup-mode-autoloads bm-autoloads zen-mode-autoloads sly-autoloads
expand-region-autoloads highlight-defined-autoloads
base16-theme-autoloads idea-darkula-theme-autoloads
hybrid-reverse-theme-autoloads material-theme-autoloads
doom-themes-autoloads nyan-mode-autoloads organic-green-theme-autoloads
inkpot-theme-autoloads github-dark-vscode-theme-autoloads
almost-mono-themes-autoloads cyberpunk-theme-autoloads
soothe-theme-autoloads zenburn-theme-autoloads mindre-theme-autoloads
kaolin-themes-autoloads tron-legacy-theme-autoloads
wildcharm-theme-autoloads atom-one-dark-theme-autoloads
parchment-theme-autoloads autothemer-autoloads
visual-fill-column-autoloads transpose-frame-autoloads
gameoflife-autoloads docker-autoloads dockerfile-mode-autoloads
emacs-everywhere-autoloads cus-dir-autoloads makefile-executor-autoloads
dumb-jump-autoloads popup-autoloads bing-dict-autoloads
hl-todo-autoloads atom-dark-theme-autoloads ef-themes-autoloads
uwu-theme-autoloads vagrant-autoloads ag-autoloads alarm-clock-autoloads
pinentry-autoloads hackernews-autoloads notmuch-autoloads
fussy-autoloads flx-autoloads affe-autoloads consult-autoloads
clang-format-autoloads apheleia-autoloads elisp-autofmt-autoloads
vimrc-mode-autoloads mpv-autoloads gnuplot-autoloads
mermaid-mode-autoloads atomic-chrome-autoloads websocket-autoloads
restore-point-autoloads ace-window-autoloads avy-autoloads
olivetti-autoloads super-save-autoloads helpful-autoloads
elisp-refs-autoloads solidity-mode-autoloads git-timemachine-autoloads
web-mode-autoloads adoc-mode-autoloads go-mode-autoloads
js2-mode-autoloads rust-playground-autoloads evil-collection-which-key
which-key super-hint-xref super-hint-rg super-hint evil-collection-xref
xref evil-collection-rg rg piper ob-shell ob-gnuplot ob-C
evil-collection-org org ob ob-tangle ob-ref ob-lob ob-table ob-exp
org-macro org-src evil-collection-sh-script sh-script executable
ob-comint org-pcomplete org-list org-footnote org-faces org-entities
org-version ob-emacs-lisp ob-core ob-eval org-cycle org-table ol
org-fold org-fold-core org-keys oc org-loaddefs org-compat org-macs
molecule-mode lsp hyperbole gptel-manual-complete evil-collection-gptel
gptel windmove erc erc-backend erc-networks erc-common erc-compat
erc-loaddefs evil-collection-ediff ediff ediff-merg ediff-mult
ediff-wind ediff-diff ediff-help ediff-init ediff-util dired-x
consult-ripgrep-all server evil-collection-eww eww vtable mule-util
url-queue epa-file evil-collection-epa epa epg rfc6068 epg-config
saveplace recentf tree-widget winner edit-list refine loop list-utils
evil-collection-leetcode leetcode derived log4e aio mm-url
evil-collection-gnus gnus nnheader gnus-util range let-alist prompts
file-info browse-at-remote f image-roll evil-collection-image image-mode
exif toc-mode rst scratch sql evil-collection-view view
persistent-scratch exercism persist async-await iter2 generator promise
url-http url-auth mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums
mail-prsvr url-gw nsm promise-rejection-tracking promise-finally
promise-done promise-es6-extensions promise-core async request
mailheader mail-utils a indent-bars evil-collection-outline noutline
outline mode-line-bell powerthesaurus jeison dash s
evil-collection-ripgrep ripgrep evil-collection-wgrep wgrep
evil-collection-grep grep evil-collection-vlf vlf vlf-base vlf-tune
gptai ctrlf hl-line nerd-icons-completion nerd-icons nerd-icons-faces
nerd-icons-data nerd-icons-data-mdicon nerd-icons-data-flicon
nerd-icons-data-codicon nerd-icons-data-devicon nerd-icons-data-sucicon
nerd-icons-data-wicon nerd-icons-data-faicon nerd-icons-data-powerline
nerd-icons-data-octicon nerd-icons-data-pomicon nerd-icons-data-ipsicon
disable-mouse mingus libmpdee evil-collection-mpdel mpdel mpdel-browser
libmpdel-directory mpdel-playlist mpdel-tablist mpdel-song mpdel-core
navigel evil-collection-bookmark bookmark evil-collection-tablist
tablist tablist-filter semantic/wisent/comp semantic/wisent
semantic/wisent/wisent semantic/util-modes semantic/util semantic
semantic/tag semantic/lex semantic/fw mode-local find-func cedet
libmpdel tq time-stamp posframe esup esup-child benchmark
ssh-config-mode jq-mode json-mode json-snatcher js c-ts-common treesit
evil-collection-imenu imenu cc-mode cc-fonts cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine cc-vars cc-defs evil-collection-yaml-mode
yaml-mode toml-mode conf-mode align highlight facemenu nix-mode ffap
smie nix-repl nix-shell nix-store evil-collection-magit-section
magit-section cursor-sensor llama nix-log nix-instantiate nix-shebang
nix-format nix sudo-edit tramp trampver tramp-integration tramp-message
tramp-compat shell pcomplete parse-time iso8601 time-date tramp-loaddefs
evil-collection-devdocs devdocs mathjax evil-terminal-cursor-changer
evil-visualstar evil-commentary evil-commentary-integration
evil-collection-evil-mc evil-mc evil-mc-command-execute
evil-mc-command-record evil-mc-cursor-make evil-mc-region
evil-mc-cursor-state evil-mc-undo evil-mc-vars evil-mc-known-commands
evil-mc-common evil-exchange evil-lion evil-args smartscan timeout ess
ess-utils ess-custom evil-collection-unimpaired evil-collection-vc-git
evil-collection-tabulated-list evil-collection-tab-bar
evil-collection-simple evil-collection-replace
evil-collection-process-menu evil-collection-package-menu
evil-collection-minibuffer evil-collection-man evil-collection-kmacro
evil-collection-indent evil-collection-help evil-collection-flymake
evil-collection-elisp-mode evil-collection-eldoc evil-collection-elpaca
evil-collection-dired evil-collection-diff-mode evil-collection-custom
evil-collection-compile evil-collection-comint evil-collection-calendar
evil-collection-buff-menu evil-collection annalist sqlite3 sqlite3-api
treebundel vc-git diff-mode track-changes files-x git-link dired
dired-loaddefs texfrag face-remap shr pixel-fill kinsoku url-file puny
svg dom preview latex latex-flymake flymake project compile
text-property-search comint ansi-osc tex-ispell tex-style tex dbus xml
crm texmathp auctex display-line-numbers elec-pair lisp-mnt package
browse-url xdg url-handlers xterm-color edit-list-autoloads
refine-autoloads list-utils-autoloads loop-autoloads leetcode-autoloads
aio-autoloads log4e-autoloads prompts-autoloads file-info-autoloads
hydra-autoloads lv-autoloads browse-at-remote-autoloads
image-roll-autoloads saveplace-pdf-view-autoloads pdfgrep-autoloads
toc-mode-autoloads scratch-autoloads persistent-scratch-autoloads
exercism-autoloads a-autoloads request-autoloads async-autoloads
async-await-autoloads promise-autoloads iter2-autoloads
persist-autoloads indent-bars-autoloads rainbow-delimiters-autoloads
rainbow-mode-autoloads mode-line-bell-autoloads powerthesaurus-autoloads
hydra lv jeison-autoloads ripgrep-autoloads wgrep-autoloads
vlf-autoloads gptai-autoloads popper-autoloads ctrlf-autoloads
nerd-icons-dired-autoloads nerd-icons-completion-autoloads
nerd-icons-autoloads disable-mouse-autoloads mingus-autoloads
libmpdee-autoloads mpdel-autoloads libmpdel-autoloads navigel-autoloads
tablist-autoloads posframe-autoloads esup-autoloads quickrun-autoloads
ht-autoloads ssh-config-mode-autoloads jq-mode-autoloads
json-mode-autoloads json-snatcher-autoloads yaml-mode-autoloads
toml-mode-autoloads symbol-overlay-autoloads
highlight-escape-sequences-autoloads highlight-autoloads
highlight-numbers-autoloads parent-mode-autoloads nix-mode-autoloads
magit-section-autoloads llama-autoloads sudo-edit-autoloads
attrap-autoloads f-autoloads dash-autoloads s-autoloads
devdocs-autoloads mathjax-autoloads
evil-terminal-cursor-changer-autoloads evil-surround-autoloads
evil-visualstar-autoloads evil-commentary-autoloads evil-mc-autoloads
evil-exchange-autoloads evil-lion-autoloads evil-args-autoloads
smartscan-autoloads timeout-autoloads ess-autoloads
info-colors-autoloads el-patch-autoloads el-patch el-patch-stub
evil-collection-autoloads annalist-autoloads sqlite3-autoloads
treebundel-autoloads git-link-autoloads texfrag-autoloads
auctex-autoloads tex-site xterm-color-autoloads ispell man ansi-color
autorevert filenotify cal-menu calendar cal-loaddefs advice evil
evil-integration evil-maps evil-commands reveal evil-jumps
evil-command-window evil-types evil-search evil-ex evil-macros
evil-repeat evil-states evil-core comp comp-cstr comp-run comp-common rx
evil-common thingatpt rect evil-vars ring undo-fu goto-chg
evil-autoloads undo-fu-autoloads goto-chg-autoloads transient pcase
format-spec transient-autoloads general memoize
sanityinc-tomorrow-bright-theme color-theme-sanityinc-tomorrow color
minions compat general-autoloads memoize-autoloads
color-theme-sanityinc-tomorrow-autoloads minions-autoloads edmacro
kmacro vc vc-dispatcher cl-extra help-mode elpaca-use-package
use-package use-package-ensure use-package-delight use-package-diminish
use-package-bind-key bind-key easy-mmode use-package-core
elpaca-use-package-autoloads elpaca-log elpaca-ui elpaca-menu-elpa
elpaca-menu-melpa url url-proxy url-privacy url-expand url-methods
url-history url-cookie generate-lisp-file url-domsuf url-util url-parse
auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x
map byte-opt gv bytecomp byte-compile url-vars mailcap elpaca-menu-org
elpaca warnings elpaca-process elpaca-autoloads early-init cus-edit pp
cus-load icons wid-edit 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 3621582 18472292) (symbols 48 157613 5456)
  (strings 32 893710 403795) (string-bytes 1 27370804) (vectors 16 260241)
  (vector-slots 8 3936524 5289091) (floats 8 4305 26791)
  (intervals 56 73808 42187) (buffers 992 149))

-- 




Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.505 (Entity 5.505)
Content-Type: text/plain; charset=utf-8
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: Eval Exec <execvy@HIDDEN>
Subject: bug#76609: Acknowledgement (31.0.50; The 0.1s repeat timer is
 very CPU-intensive; it might be a bug?)
Message-ID: <handler.76609.B.174066456420722.ack <at> debbugs.gnu.org>
References: <87h64flcf7.fsf@HIDDEN>
X-Gnu-PR-Message: ack 76609
X-Gnu-PR-Package: emacs
Reply-To: 76609 <at> debbugs.gnu.org
Date: Thu, 27 Feb 2025 13:57:03 +0000

Thank you for filing a new bug report with debbugs.gnu.org.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

Your message has been sent to the package maintainer(s):
 bug-gnu-emacs@HIDDEN

If you wish to submit further information on this problem, please
send it to 76609 <at> debbugs.gnu.org.

Please do not send mail to help-debbugs@HIDDEN unless you wish
to report a problem with the Bug-tracking system.

--=20
76609: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D76609
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#76609: 31.0.50; The 0.1s repeat timer is very CPU-intensive;  it might be a bug?
Resent-From: Eli Zaretskii <eliz@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 27 Feb 2025 14:29:01 +0000
Resent-Message-ID: <handler.76609.B76609.1740666484695 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 76609
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Eval Exec <execvy@HIDDEN>
Cc: 76609 <at> debbugs.gnu.org
Received: via spool by 76609-submit <at> debbugs.gnu.org id=B76609.1740666484695
          (code B ref 76609); Thu, 27 Feb 2025 14:29:01 +0000
Received: (at 76609) by debbugs.gnu.org; 27 Feb 2025 14:28:04 +0000
Received: from localhost ([127.0.0.1]:60774 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tnerr-0000B7-Kk
	for submit <at> debbugs.gnu.org; Thu, 27 Feb 2025 09:28:04 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:35850)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tnerp-0000AC-AV
 for 76609 <at> debbugs.gnu.org; Thu, 27 Feb 2025 09:28:02 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1tnerj-0004vi-5o; Thu, 27 Feb 2025 09:27:55 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=NnMRIPvLngJuQADi9+BeR2cfbJd5Z+Y7e5Z2DRh0JD0=; b=Yd1AgYekO/Xv
 GurSl/dMMvYTHo3T8sBfNWehX1c8pfqHOJobDe6jKE17lANyRnt1oK7AF45Fhvml3wdfuwu2I3hRl
 6m25Zmdqe3+w8FzM92TwrIlsGMsUYu13ePYMKGod1zHqaUfAItgum80ZZ/lCJkcLAg7xHUNywOWtF
 5g92Tgk0RGX3QoYkx9pmQdgMwNE0xS2sxbq/bS2qED8bthDaUXbNxgSi/mvAeKlI+s9WwfBzOXZy0
 5HVkqkICYaCftfxbp86NiWe4aYImKudLm8pPh5sLV46hb6dkxK2LMvgfhYojd+rBAYusH8H4zoi/i
 jJw6nzpdc+fWWL7mzZNqfw==;
Date: Thu, 27 Feb 2025 16:27:44 +0200
Message-Id: <86frjztqcf.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
In-Reply-To: <87h64flcf7.fsf@HIDDEN> (message from Eval Exec on Thu, 27 Feb
 2025 21:55:40 +0800)
References: <87h64flcf7.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Eval Exec <execvy@HIDDEN>
> Date: Thu, 27 Feb 2025 21:55:40 +0800
> 
> I a 0.1 s repeat timer in emacs -Q, then Emacs's the cpu usage is 30% ~
> 70%.
> I think it's a bug.

I get around 45% with this, but why do you consider this a bug?  Your
timer function perhaps does nothing, but the timer machinery is
invoked every 100 msec, and it does consume CPU.

in addition, when you have a high-frequency timer, the Emacs idle loop
is much more expensive, because instead of waiting inside pselect, it
runs all the loop code every 100 msec.

Maybe I'm missing something, but I don't see a bug here.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#76609: 31.0.50; The 0.1s repeat timer is very CPU-intensive;  it might be a bug?
Resent-From: Eval Exec <execvy@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 27 Feb 2025 14:40:13 +0000
Resent-Message-ID: <handler.76609.B76609.17406671506396 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 76609
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Eli Zaretskii <eliz@HIDDEN>
Cc: 76609 <at> debbugs.gnu.org
Received: via spool by 76609-submit <at> debbugs.gnu.org id=B76609.17406671506396
          (code B ref 76609); Thu, 27 Feb 2025 14:40:13 +0000
Received: (at 76609) by debbugs.gnu.org; 27 Feb 2025 14:39:10 +0000
Received: from localhost ([127.0.0.1]:32917 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tnf2b-0001ez-Tq
	for submit <at> debbugs.gnu.org; Thu, 27 Feb 2025 09:39:10 -0500
Received: from mail-oi1-x243.google.com ([2607:f8b0:4864:20::243]:56730)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <execvy@HIDDEN>) id 1tneyc-00015O-Si
 for 76609 <at> debbugs.gnu.org; Thu, 27 Feb 2025 09:35:04 -0500
Received: by mail-oi1-x243.google.com with SMTP id
 5614622812f47-3f5507a09e6so312441b6e.1
 for <76609 <at> debbugs.gnu.org>; Thu, 27 Feb 2025 06:35:02 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1740666896; x=1741271696; darn=debbugs.gnu.org;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:from:to:cc:subject:date
 :message-id:reply-to;
 bh=TE6pNyVR6ATqdJtn+Yd9efa4EglNvHKu7yQlcQdMgSQ=;
 b=VzLl37NV95/Tgmg3XDeJKcSXgAcTEAUeX5Q7VSwmt30cHiRDBsSPtEuLOXmTgobZOq
 +RBH7Xh8U3uhFyrsL7l/p0mpiXLmr2YKGDta03BZdk+RKk8rkPHSLtAjr+jG3U2mMsXj
 IoKvSRmz4JfwTUm/5qW+EH9EmSLCBVfFjFc2WBvM8Vnnb3o20cqzEM2ypwfgJ8j6hNoO
 7V7+aABVBGrFhO8+f6FgozhXozsW0XbAF1xIOfExbWZ/dEQlRj0bkiVuGjmtzUIA9zfY
 aDxALhBsLfaiid6K7wg97wY3uPjbwx/pnngm301+V/6n4BY0jebFtniJfeVsB0s3Z1OU
 ompg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1740666896; x=1741271696;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=TE6pNyVR6ATqdJtn+Yd9efa4EglNvHKu7yQlcQdMgSQ=;
 b=doVLNzXvgSH8zYceFL6I4rpagtBtG7iF2SDMD9Zue6LCDngLho+f/5vkUMgtHPwE+e
 E7rZm88dF3f4bUDpfQA+De0AzJPknpwGVBtg+jLTPAiRM5QMGOzJrWHjqPxQMal3DgXr
 KmvDpd5trqNKPDWZ8r6245/09yCDVC1Ki/uGmzZi+3E+zmBEOpKG9SDi5NXVov0HMpHG
 ky5alcgxQ8O8MZw+OFpnPydG78WRy4GPTVnSKWdMFr2i01SGI0pwKWo3/oMwPBr3tNjR
 78FVVH4z5By4MovpcRzDn32IDPP6o1pSUw4J1+/QnBzofoDj8Usrhsnh+OrySzADY7Va
 7WQA==
X-Gm-Message-State: AOJu0Yzlk2yoHlCZvc8+kkYcgGN4ee3vj5UVmcOkWzwsRq58cQ88FHYF
 CN9Y8JL6UZidD6b9yxsv0Gz1luBArys9Humwr7IlORTEXpG2RAK3enOEsGF/sdjY0mNRTM8E79Z
 z4L52Y8LT2Cdis57dC5VCoYYJsTg=
X-Gm-Gg: ASbGncvtWx/LEL3sJK//sTT09z6mTCRkjJLjqSxarqFbOOIz7FjKYn45oipglCx++5I
 +4gyMU4NrpuGS15t87YOVacYtiBwhEjKeOOPKK3QQ83fiS5Qfoap8lvuPXjtGCvj5VX3B+vwYk/
 kLTDI/LU3I
X-Google-Smtp-Source: AGHT+IFRdHq9tXIbYG7VlOd5hX+cyuSLz4YtmotnhyLFaN6avSfGi3IpNuzvWQL9j0I+Df6gicWnn4zh05p8zB9dRaY=
X-Received: by 2002:a05:6808:308a:b0:3f4:845:a464 with SMTP id
 5614622812f47-3f547e35883mr4821531b6e.31.1740666895374; Thu, 27 Feb 2025
 06:34:55 -0800 (PST)
MIME-Version: 1.0
References: <87h64flcf7.fsf@HIDDEN> <86frjztqcf.fsf@HIDDEN>
In-Reply-To: <86frjztqcf.fsf@HIDDEN>
From: Eval Exec <execvy@HIDDEN>
Date: Thu, 27 Feb 2025 22:34:44 +0800
X-Gm-Features: AQ5f1Jpi3leoMwzCQLWkTgPpaGKpZuAalBaLjN-I3hcrp3xLcghsWFaAfnDTaS0
Message-ID: <CAKfPJDrrkaVBJV81BHiP-B5sZZ1oPjb0_GLs6t9+GxP10s-82A@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

45% CPU for a 0.1s repeating timer does seem surprisingly high. Is
there a way we can optimize this, given the frequent timer
invocations?

On Thu, Feb 27, 2025 at 10:27=E2=80=AFPM Eli Zaretskii <eliz@HIDDEN> wrote=
:
>
> > From: Eval Exec <execvy@HIDDEN>
> > Date: Thu, 27 Feb 2025 21:55:40 +0800
> >
> > I a 0.1 s repeat timer in emacs -Q, then Emacs's the cpu usage is 30% ~
> > 70%.
> > I think it's a bug.
>
> I get around 45% with this, but why do you consider this a bug?  Your
> timer function perhaps does nothing, but the timer machinery is
> invoked every 100 msec, and it does consume CPU.
>
> in addition, when you have a high-frequency timer, the Emacs idle loop
> is much more expensive, because instead of waiting inside pselect, it
> runs all the loop code every 100 msec.
>
> Maybe I'm missing something, but I don't see a bug here.




Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#76609: 31.0.50; The 0.1s repeat timer is very CPU-intensive;  it might be a bug?
Resent-From: Eval Exec <execvy@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Thu, 27 Feb 2025 14:40:15 +0000
Resent-Message-ID: <handler.76609.B76609.17406671566459 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 76609
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Eli Zaretskii <eliz@HIDDEN>
Cc: 76609 <at> debbugs.gnu.org
Received: via spool by 76609-submit <at> debbugs.gnu.org id=B76609.17406671566459
          (code B ref 76609); Thu, 27 Feb 2025 14:40:15 +0000
Received: (at 76609) by debbugs.gnu.org; 27 Feb 2025 14:39:16 +0000
Received: from localhost ([127.0.0.1]:32927 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tnf2h-0001g2-Bj
	for submit <at> debbugs.gnu.org; Thu, 27 Feb 2025 09:39:15 -0500
Received: from mail-oi1-x242.google.com ([2607:f8b0:4864:20::242]:57842)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <execvy@HIDDEN>) id 1tnf2L-0001ck-HJ
 for 76609 <at> debbugs.gnu.org; Thu, 27 Feb 2025 09:38:54 -0500
Received: by mail-oi1-x242.google.com with SMTP id
 5614622812f47-3f417de5e25so473995b6e.3
 for <76609 <at> debbugs.gnu.org>; Thu, 27 Feb 2025 06:38:53 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1740667127; x=1741271927; darn=debbugs.gnu.org;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:from:to:cc:subject:date
 :message-id:reply-to;
 bh=Qem2g2ImHkQZMXMOJ1x5pC8CHAI9E4+34ryCgK8Wnxs=;
 b=X8HqggYvwgomQeJf78Wvvfh6G5Yszp9pD4c3B+LgGyafvDK8Gi1R2Ou3Z+oseUUSc4
 W7n225HSaK2nhjKpwE8PbQWMQvCu3ZKMd8SGK8eGcuUCBbRn/xlNLSTPNasfp2ijWTrD
 iLt1SDFw/2STBxyfx7gG9OszbqZyyr9ANGMmSqwLIuUWUNHyt0sLLdd3lMhP2Efg1TLL
 edfSyV7tO0tRpXUFErRKFDqQWyC+iTV9GAtOOoKy/6MqKEEAbb2DBLFwjA2J/5pGtf5w
 L9Z8MtVkZLoeUhKtNTDkTj2IIbNoTUJCTZT3gFjHPDnFXyJ+TQ/8d5H+20WOIWcfj89i
 cCTQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1740667127; x=1741271927;
 h=content-transfer-encoding:cc:to:subject:message-id:date:from
 :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=Qem2g2ImHkQZMXMOJ1x5pC8CHAI9E4+34ryCgK8Wnxs=;
 b=MlDKMC3+anRuLfEd1H7nswgWl911BEU6yOmXKVBrObpLZj+9WwUjWsEwO34GR9ahH8
 pPM2N0A5xChdg8BPcAVOmXSx/QnZ6rHdI1MIzYXuu2L4AuygqCtFy3zE0GXbnXAsMefP
 qUG0VrqQmc6+yMDjewdEnGQbek70lYgyPuw8lzE2nBPfhNYcun/DB9fwolg5xlu+4nM+
 bJjaf1VJyUrhrVTKVjJKIqYV91j34pmpfKbabzWKGJ4YGe88qyjxvnVqLV6HFAmt/zfh
 6ycdpi4Zpk8LFQhvzaUl5Qk32MYbxYt/D2leeR2HObIZn3pTr4laCGUyB1VDwarkbKq8
 Ns1w==
X-Gm-Message-State: AOJu0Yz3jIhBqx2Bpz2TaHC5+RVvPl3E/t6BH/IfcQQXyZlp50YH1EV8
 YN/DpE7wwi6IExNYLwlloKhCnMwu/OWPnenA28oaPK5bbv0PnZXV8CnGwuE3CLTV9Dizdx4BWl2
 Xa5HRzgMSS3tKNfYmkUWkU6bfefJrULwROXaRzQ==
X-Gm-Gg: ASbGnctUBSShbnTRpBfLnNIkPIKKlPRXgD0Vx0LREKz+aRerEA51bALdEI09l1Yg42i
 fey1C+r/lYnEVcFzlRPY/pf3wysX3k1nRkjAptE7GEpDM4zzTsjfClptnYyWAyivTInQJKERlBH
 deg2NQoYEs
X-Google-Smtp-Source: AGHT+IHu3SNmxEoNDfyrTX15FB2FcnL4ytvmMsLfREd5Hl0VQwgoh1uWkvFGSdYOTGlhiKtucGZdQUQ9mveqw5ogAHw=
X-Received: by 2002:a05:6808:308a:b0:3f4:845:a464 with SMTP id
 5614622812f47-3f547e35883mr4836155b6e.31.1740667127195; Thu, 27 Feb 2025
 06:38:47 -0800 (PST)
MIME-Version: 1.0
References: <87h64flcf7.fsf@HIDDEN> <86frjztqcf.fsf@HIDDEN>
 <CAKfPJDrrkaVBJV81BHiP-B5sZZ1oPjb0_GLs6t9+GxP10s-82A@HIDDEN>
In-Reply-To: <CAKfPJDrrkaVBJV81BHiP-B5sZZ1oPjb0_GLs6t9+GxP10s-82A@HIDDEN>
From: Eval Exec <execvy@HIDDEN>
Date: Thu, 27 Feb 2025 22:38:35 +0800
X-Gm-Features: AQ5f1JrRcujh9rljsCFfURnEWzUOvY7rFwhhNSg2AVU8Hot1rZXeBhEFLVe2wkM
Message-ID: <CAKfPJDq_6mc9UcZ5YQ9dU=z8Y8DgEdScgBfFXzM4JespWpr4=w@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Compare to a bash script:
while true; do
  sleep 0.1;
   date
done

above script have 0% CPU usage on my laptop.

change it to 0.0001:
while true; do
  sleep 0.0001;
   date
done

even 0.0001 s repeat, the bash script only have 4% cpu usage.

So I think a 0.1s repeat timer in Emacs consume 45% is very surprise.
I think maybe we should improve the timer performance

On Thu, Feb 27, 2025 at 10:34=E2=80=AFPM Eval Exec <execvy@HIDDEN> wrote=
:
>
> 45% CPU for a 0.1s repeating timer does seem surprisingly high. Is
> there a way we can optimize this, given the frequent timer
> invocations?
>
> On Thu, Feb 27, 2025 at 10:27=E2=80=AFPM Eli Zaretskii <eliz@HIDDEN> wro=
te:
> >
> > > From: Eval Exec <execvy@HIDDEN>
> > > Date: Thu, 27 Feb 2025 21:55:40 +0800
> > >
> > > I a 0.1 s repeat timer in emacs -Q, then Emacs's the cpu usage is 30%=
 ~
> > > 70%.
> > > I think it's a bug.
> >
> > I get around 45% with this, but why do you consider this a bug?  Your
> > timer function perhaps does nothing, but the timer machinery is
> > invoked every 100 msec, and it does consume CPU.
> >
> > in addition, when you have a high-frequency timer, the Emacs idle loop
> > is much more expensive, because instead of waiting inside pselect, it
> > runs all the loop code every 100 msec.
> >
> > Maybe I'm missing something, but I don't see a bug here.





Last modified: Thu, 27 Feb 2025 14:45:03 UTC

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