* bug#59641: term is very slow
@ 2022-11-27 20:00 Akib Azmain Turja via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-11-27 20:31 ` Eli Zaretskii
0 siblings, 1 reply; 6+ messages in thread
From: Akib Azmain Turja via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-11-27 20:00 UTC (permalink / raw)
To: 59641
[-- Attachment #1.1: Type: text/plain, Size: 573 bytes --]
Term mode is very slow. On my computer, Coterm is 2-3x faster than
term, and my own terminal emulator, Eat, is 4-5x faster.
I tried to profile Term. Steps:
1. emacs -Q (+ -nw, environment variable DISPLAY was unset)
2. M-x profiler-start RET cpu+mem RET
3. M-x term
4. Run the following stupid command:
timeout 1 bash -c 'i=0 ; while true ; do echo $i ; i=$((i+1)) ; done'
Note I also run emacs -nw in before this command.
5. Wait for finishing.
6. M-x profiler-stop
7. M-x profiler-report
Here are the reports (attached), but don't seem to be human readable:
[-- Attachment #1.2: CPU Profile Data --]
[-- Type: application/octet-stream, Size: 11283 bytes --]
[profiler-profile "28.1" cpu #s(hash-table size 97 test equal rehash-size 1.5 rehash-threshold 0.8125 data ([funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil] 8 [completing-read-default read-extended-command-1 read-extended-command byte-code command-execute nil nil nil nil nil nil nil nil nil nil nil] 26 ["#<compiled -0xa873503662230e4>" completing-read-default read-extended-command-1 read-extended-command byte-code command-execute nil nil nil nil nil nil nil nil nil nil] 3 [show-paren--default show-paren-function apply timer-event-handler completing-read-default read-extended-command-1 read-extended-command byte-code command-execute nil nil nil nil nil nil nil] 2 [show-paren-function apply timer-event-handler completing-read-default read-extended-command-1 read-extended-command byte-code command-execute nil nil nil nil nil nil nil nil] 2 [execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil nil nil] 12 [byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil] 23 [byte-code require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 26 [byte-code defvar command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil] 4 [read-from-minibuffer read-shell-command byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 4 ["#<compiled 0x1a044bbfab7de9f2>" execute-extended-command--shorter "#<compiled -0xb30f43a056c4866>" apply timer-event-handler nil nil nil nil nil nil nil nil nil nil nil] 4 [easy-menu-lookup-name "#<compiled 0x12afad0b062c4ebb>" mapcar easy-menu-get-map easy-menu-add-item easy-menu-change term--update-term-menu redisplay_internal\ \(C\ function\) term-emulate-terminal nil nil nil nil nil nil nil] 8 [term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 3919 [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 1063 [redisplay--update-region-highlight run-hook-with-args redisplay--pre-redisplay-functions redisplay_internal\ \(C\ function\) nil nil nil nil nil nil nil nil nil nil nil nil] 2 [term-goto term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 51 [if eval term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 8 [face-attribute face-attribute face-background term--color-as-hex term--handle-colors-list term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil] 6 [term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 1682 [term-down term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 1823 [face-attribute face-foreground term--color-as-hex term--handle-colors-list term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil] 12 [term-move-to-column term-move-columns term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 10 [term-move-columns term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 28 [jit-lock-after-change term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 111 [term-move-columns term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 225 [run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil nil] 35 [term-down term-goto term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 714 [vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 16 [font-lock-set-defaults font-lock-fontify-region "#<compiled -0x1540fe59cc42d603>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function redisplay_internal\ \(C\ function\) term-emulate-terminal nil nil nil nil nil nil nil nil] 4 [font-lock-fontify-region "#<compiled -0x1552ff392e9c9603>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil] 22 [term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 32 [syntax-propertize-wholelines font-lock-extend-region-wholelines font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1552f71a36b2fc03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil] 20 [face-foreground term--color-as-hex term--handle-colors-list term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil] 12 [timer--activate timer-activate run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil] 88 [term--handle-colors-list term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 16 [syntax-ppss-flush-cache term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 12 [timer--time-less-p timer--activate timer-activate run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil] 8 [jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 46 [jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 64 [font-lock-extend-region-wholelines font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1552f745b3231203>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil] 12 [term-move-columns term-down term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 8 [font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1546fd5b53d9da03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil] 20 [if eval redisplay_internal\ \(C\ function\) term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 4 [font-lock-unfontify-region font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1540fac747b55603>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil] 12 [face-attribute face-attribute face-foreground term--color-as-hex term--handle-colors-list term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil] 8 [face-attribute face-attribute-merged-with face-attribute face-background term--color-as-hex term--handle-colors-list term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil] 16 [face-attribute face-background term--color-as-hex term--handle-colors-list term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil] 8 [syntax-ppss show-paren--default show-paren-function apply timer-event-handler term-emulate-terminal nil nil nil nil nil nil nil nil nil nil] 4 [timer-set-time run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil] 20 [term-send-raw funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil nil nil] 4 [apply timer-event-handler term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 8 [font-lock-set-defaults font-lock-fontify-region "#<compiled -0x1540f619efa85203>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil] 4 [face-attribute-merged-with face-attribute face-background term--color-as-hex term--handle-colors-list term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil] 4 ["#<compiled -0x1540fac747b55603>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil nil] 8 [font-lock-fontify-region "#<compiled -0x1540fe59cc42d603>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function redisplay_internal\ \(C\ function\) term-emulate-terminal nil nil nil nil nil nil nil nil nil] 4 [timer-activate run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil] 4 [eval redisplay_internal\ \(C\ function\) term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 4 [buffer-match-p show-paren-function apply timer-event-handler nil nil nil nil nil nil nil nil nil nil nil nil] 2 [font-lock-unfontify-region font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1552f4e0aae95e03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil] 8 [term-insert-char term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 40 [jit-lock-after-change term-insert-char term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 28 [jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil] 40 [term-handle-deferred-scroll term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 137 [font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1554fa224e318f03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil nil] 8 [jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil] 4 [font-lock-extend-region-wholelines font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1546c88d0dca1d03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil] 4 ["#<compiled -0x1546deb559806303>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil] 4 [font-lock-fontify-region "#<compiled -0x1546c2ed8adb7d03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil nil nil] 4 ["#<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_9>" apply timer-event-handler completing-read-default read-extended-command-1 read-extended-command byte-code command-execute nil nil nil nil nil nil nil nil] 7 [read-extended-command-1 read-extended-command byte-code command-execute nil nil nil nil nil nil nil nil nil nil nil nil] 5 [funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 1 [Automatic\ GC] 347)) (25475 48364 740815 549000) nil]
[-- Attachment #1.3: Memory Profile Data --]
[-- Type: application/octet-stream, Size: 35901 bytes --]
[profiler-profile "28.1" memory #s(hash-table size 217 test equal rehash-size 1.5 rehash-threshold 0.8125 data ([funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil] 3695303 [clear-minibuffer-message profiler-start funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 1770 [timer-set-time run-at-time execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil] 48 [timer--activate timer-activate run-at-time execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil] 48 [timer-set-idle-time run-with-idle-timer eldoc-schedule-timer nil nil nil nil nil nil nil nil nil nil nil nil nil] 24 [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 7426758 [read-extended-command-1 read-extended-command byte-code command-execute nil nil nil nil nil nil nil nil nil nil nil nil] 10782 [completing-read-default read-extended-command-1 read-extended-command byte-code command-execute nil nil nil nil nil nil nil nil nil nil nil] 115292 ["#<compiled -0xa873503662230e4>" completing-read-default read-extended-command-1 read-extended-command byte-code command-execute nil nil nil nil nil nil nil nil nil nil] 2728 [command-execute completing-read-default read-extended-command-1 read-extended-command byte-code command-execute nil nil nil nil nil nil nil nil nil nil] 304 [funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 215699 [substitute-env-in-file-name command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil] 1152 [execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil nil nil] 220166 [command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil nil] 7568 [byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil] 439928 [require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil] 5176 [byte-code require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 295581 [require byte-code require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil] 14139 [make-empty-face face-spec-set custom-declare-face require byte-code require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil] 5752 [key-valid-p keymap--check keymap-set define-keymap defvar require byte-code require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil] 6400 [keymap-set define-keymap defvar require byte-code require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil] 11776 [regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt "#<compiled -0x1c7f3d51f79afe47>" funcall eval custom-initialize-reset custom-declare-variable byte-code require byte-code command-execute execute-extended-command funcall-interactively] 16368 [regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt "#<compiled -0x1c7f3d51f79afe47>" funcall eval custom-initialize-reset custom-declare-variable byte-code require byte-code command-execute execute-extended-command] 2096 [regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt "#<compiled -0x1c7f3d51f79afe47>" funcall eval custom-initialize-reset custom-declare-variable byte-code require byte-code command-execute] 1048 [regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt "#<compiled -0x1c7f3d51f79afe47>" funcall eval custom-initialize-reset custom-declare-variable byte-code require byte-code] 2096 [regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt "#<compiled -0x1c7f3d51f79afe47>" funcall eval custom-initialize-reset custom-declare-variable byte-code require] 1048 [regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt "#<compiled -0x1c7f3d51f79afe47>" funcall eval custom-initialize-reset custom-declare-variable byte-code] 3144 [regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt "#<compiled -0x1c7f3d51f79afe47>" funcall eval custom-initialize-reset custom-declare-variable] 1048 [regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt "#<compiled -0x1c7f3d51f79afe47>" funcall eval custom-initialize-reset] 11328 [regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt "#<compiled -0x1c7f3d51f79afe47>"] 2096 [regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group] 25968 ["#<compiled 0x1d31761ad15896c5>" regexp-opt-charset regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group] 1216 [regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt] 1048 [regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt "#<compiled -0x1c7f3d51f79afe47>" funcall] 1048 [funcall eval custom-initialize-reset custom-declare-variable byte-code require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil] 1272 [defconst require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 40 [defvar require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 1064 [byte-code defvar require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil] 5256 [substitute-env-in-file-name require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 1152 [substitute-key-definition-key "#<compiled -0x9ffbd4090ea95b5>" substitute-key-definition byte-code defvar require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil] 1056 [elisp--font-lock-flush-elisp-buffers do-after-load-evaluation require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil] 1056 [byte-code require byte-code require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil] 5280 [derived-mode-p elisp--font-lock-flush-elisp-buffers do-after-load-evaluation require byte-code require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil] 1056 [custom-initialize-reset custom-declare-variable byte-code require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil] 1056 [custom-handle-keyword custom-declare-variable byte-code require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil] 2112 [key-valid-p keymap--check keymap-set define-keymap defvar require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil] 3200 [keymap-set define-keymap defvar require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil] 10368 [make-abbrev-table define-abbrev-table byte-code require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil] 4144 [face-spec-reset-face face-spec-recalc face-spec-set custom-declare-face require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil] 3168 [custom-initialize-reset custom-declare-variable byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 2112 [custom-handle-keyword custom-declare-variable byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 2112 [defvar command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil] 1880 [byte-code defvar command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil] 27688 [easy-menu-do-define byte-code defvar command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 2112 [easy-menu-create-menu easy-menu-do-define byte-code defvar command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil] 1056 [easy-menu-convert-item easy-menu-create-menu easy-menu-do-define byte-code defvar command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil] 1064 [custom-declare-face command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil] 3168 [make-empty-face face-spec-set custom-declare-face command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 21032 [face-spec-reset-face face-spec-recalc face-spec-set custom-declare-face command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil] 11616 [face-spec-set-2 face-spec-recalc face-spec-set custom-declare-face command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil] 1056 [custom-handle-keyword custom-handle-all-keywords custom-declare-face command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 2112 [easy-menu-convert-item easy-menu-create-menu easy-menu-do-define byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil] 1056 [easy-menu-do-define byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil] 1056 [easy-menu-convert-item easy-menu-create-menu easy-menu-do-define command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 2120 [do-after-load-evaluation command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil] 1056 [read-shell-command byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil] 5779 [global-font-lock-mode-cmhh minibuffer-mode read-from-minibuffer read-shell-command byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil] 1056 ["#<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_82>" minibuffer-setup read-from-minibuffer read-shell-command byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil] 1576 [keymap-canonicalize redisplay_internal\ \(C\ function\) read-from-minibuffer read-shell-command byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil] 1056 [read-from-minibuffer read-shell-command byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 11930 [tty-color-desc redisplay_internal\ \(C\ function\) read-from-minibuffer read-shell-command byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil] 1024 [font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1552f40755efdc03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function redisplay_internal\ \(C\ function\) read-from-minibuffer read-shell-command byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil] 22245 [font-lock-default-fontify-syntactically font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1552f40755efdc03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function redisplay_internal\ \(C\ function\) read-from-minibuffer read-shell-command byte-code command-execute execute-extended-command funcall-interactively command-execute nil] 1024 [lisp--el-match-keyword font-lock-fontify-keywords-region font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1552f40755efdc03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function redisplay_internal\ \(C\ function\) read-from-minibuffer read-shell-command byte-code command-execute execute-extended-command funcall-interactively command-execute] 1024 [lisp-mode--search-key "#<compiled -0x18f7e1f4923b1108>" font-lock-fontify-keywords-region font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1552f40755efdc03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function redisplay_internal\ \(C\ function\) read-from-minibuffer read-shell-command byte-code command-execute execute-extended-command funcall-interactively] 2048 ["#<compiled 0x156200935f5ab7d1>" font-lock-fontify-keywords-region font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1552f40755efdc03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function redisplay_internal\ \(C\ function\) read-from-minibuffer read-shell-command byte-code command-execute execute-extended-command funcall-interactively command-execute] 1024 [lisp--match-confusable-symbol-character font-lock-fontify-keywords-region font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1552f40755efdc03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function redisplay_internal\ \(C\ function\) read-from-minibuffer read-shell-command byte-code command-execute execute-extended-command funcall-interactively command-execute] 2264 [redisplay_internal\ \(C\ function\) read-from-minibuffer read-shell-command byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil] 7288 [syntax-ppss show-paren--default show-paren-function apply timer-event-handler read-from-minibuffer read-shell-command byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil] 1056 [command-execute read-from-minibuffer read-shell-command byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil] 16 [split-string-shell-command term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 5381 [term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil] 2085 [comint-bol shell-backward-command shell--parse-pcomplete-arguments split-string-shell-command term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil] 704 [shell--parse-pcomplete-arguments split-string-shell-command term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil] 1361 [make-term term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 4312 [window-inside-pixel-edges window-screen-lines term-mode make-term term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil] 1056 ["#<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_28>" advice--add-function term-mode make-term term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil] 40 [advice--copy advice--make advice--add-function term-mode make-term term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil] 1056 ["#<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_30>" advice--add-function term-mode make-term term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil] 40 [term-mode make-term term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil] 40 [term-move-columns term-set-scroll-region term--reset-scroll-region term-mode make-term term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil] 704 [font-lock-mode-internal font-lock-default-function font-lock-mode turn-on-font-lock turn-on-font-lock-if-desired global-font-lock-mode-enable-in-buffers run-hooks run-mode-hooks term-mode make-term term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute] 1056 [called-interactively-p font-lock-mode turn-on-font-lock turn-on-font-lock-if-desired global-font-lock-mode-enable-in-buffers run-hooks run-mode-hooks term-mode make-term term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil] 1056 [term-exec make-term term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil] 15375 [term--bash-needs-EMACSp term-exec-1 term-exec make-term term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil] 1599 [term-exec-1 term-exec make-term term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil] 1056 [start-process term-exec-1 term-exec make-term term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil] 3879 [record-window-buffer set-window-buffer window--display-buffer display-buffer-same-window display-buffer pop-to-buffer pop-to-buffer-same-window term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil] 1056 [window--display-buffer display-buffer-same-window display-buffer pop-to-buffer pop-to-buffer-same-window term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil] 681 [execute-extended-command--shorter "#<compiled -0xb30f43a056c4866>" apply timer-event-handler nil nil nil nil nil nil nil nil nil nil nil nil] 10560 ["#<compiled 0x1a044bbfab7de9f2>" execute-extended-command--shorter "#<compiled -0xb30f43a056c4866>" apply timer-event-handler nil nil nil nil nil nil nil nil nil nil nil] 1906 [execute-extended-command--shorter-1 execute-extended-command--shorter "#<compiled -0xb30f43a056c4866>" apply timer-event-handler nil nil nil nil nil nil nil nil nil nil nil] 1152 ["#<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_26>" term--update-term-menu redisplay_internal\ \(C\ function\) nil nil nil nil nil nil nil nil nil nil nil nil nil] 1024 [term--update-term-menu redisplay_internal\ \(C\ function\) nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 127 [easy-menu-convert-item-1 easy-menu-convert-item easy-menu-create-menu easy-menu-change term--update-term-menu redisplay_internal\ \(C\ function\) nil nil nil nil nil nil nil nil nil nil] 336 [term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 3435429 [term--update-term-menu redisplay_internal\ \(C\ function\) term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 127 [if eval redisplay_internal\ \(C\ function\) term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 84992 [timer--time-less-p timer--activate timer-activate-when-idle timer-event-handler nil nil nil nil nil nil nil nil nil nil nil nil] 3168 [if eval term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 132240 [unless eval term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 8448 [term-move-columns term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 139862 [internal--before-save-selected-window term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 9504 [jit-lock-fontify-now jit-lock-function term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 37456 [term-move-to-column term-move-columns term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 5280 [window-pixel-edges window-at-side-p mode-line-default-help-echo redisplay_internal\ \(C\ function\) term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil] 14784 [syntax-ppss show-paren--default show-paren-function apply timer-event-handler nil nil nil nil nil nil nil nil nil nil nil] 1056 [jit-lock-fontify-now jit-lock-function vertical-motion term-erase-in-line term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil] 1016 [term-switch-to-alternate-sub-buffer term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 1056 [term-down term-goto term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 1056 [term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 539616 [timer-set-time run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil] 181175 [derived-mode-p font-lock-set-defaults font-lock-fontify-region "#<compiled -0x1552f653d83c3a03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil] 16896 [font-lock-fontify-region "#<compiled -0x1552f6464c2a3403>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-down term-goto term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil] 1056 [term-erase-in-line term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 1360 [jit-lock-fontify-now jit-lock-function redisplay_internal\ \(C\ function\) term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 3168 [term-move-columns term-down term-goto term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil] 6336 [term-insert-char term-down term-goto term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil] 1056 [run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil nil] 222940 [timer--activate timer-activate run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil] 2276048 [jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 1715715 [timer--time-less-p timer--activate timer-activate run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil] 1336247 [font-lock-fontify-region "#<compiled -0x1552fe55e3467003>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil] 700480 [jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 352240 [jit-lock-after-change term-move-to-column term-move-columns term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 8704 [timer-activate run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil] 10560 [derived-mode-p font-lock-set-defaults font-lock-fontify-region "#<compiled -0x1554f8d728b20403>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil] 32736 [term-move-columns term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 93984 [jit-lock-after-change term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 855248 [font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1554fdea900e2c03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil] 820512 [term-move-columns term-down term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 41184 [term-horizontal-column term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 20796 [term-goto term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 2112 [apply timer-event-handler term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 82880 [font-lock-extend-region-wholelines font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1552f71a36b2fc03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil] 22855 [font-lock-set-defaults font-lock-fontify-region "#<compiled -0x1552f5a2c9e7a803>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil] 30624 [run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil] 35527 ["#<compiled 0x2a9b9e93e687e>" jit-lock-after-change term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 15518 [term-move-columns term-goto term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 2112 [font-lock-fontify-region "#<compiled -0x1554fcbcecc73e03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function term-emulate-terminal nil nil nil nil nil nil nil nil nil nil] 23888 ["#<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_0>" internal--before-save-selected-window term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 4144 [copy-marker jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil] 17552 [eval term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 3470 [font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1554fce04ab8d803>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function term-emulate-terminal nil nil nil nil nil nil nil nil nil] 12432 [timer--time timer--time-less-p timer--activate timer-activate run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil] 6940 [unless eval redisplay_internal\ \(C\ function\) term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 4224 [string-to-number term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 5205 [timer-relative-time run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil] 3470 ["#<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_9>" apply timer-event-handler nil nil nil nil nil nil nil nil nil nil nil nil nil] 1056 [syntax-ppss-flush-cache term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 3470 [timer-set-function run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil] 1735 [timer-event-handler term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 1735 [match-string term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 3470 [jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil] 1735 [font-lock-fontify-region "#<compiled -0x1540fe59cc42d603>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function redisplay_internal\ \(C\ function\) term-emulate-terminal nil nil nil nil nil nil nil nil nil] 5200 [font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1540fe59cc42d603>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function redisplay_internal\ \(C\ function\) term-emulate-terminal nil nil nil nil nil nil nil nil] 4144 [font-lock-set-defaults font-lock-fontify-region "#<compiled -0x1540fe59cc42d603>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function redisplay_internal\ \(C\ function\) term-emulate-terminal nil nil nil nil nil nil nil nil] 1056 [text-property-any jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil] 5205 [run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-goto term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil] 1280 [timer-set-time run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-goto term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil] 1536 [timer--activate timer-activate run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-goto term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil] 3072 [timer--time-less-p timer--activate timer-activate run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-goto term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil] 1056 [font-lock-extend-jit-lock-region-after-change jit-lock-after-change term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 3470 [timer-set-time run-at-time run-with-timer jit-lock-fontify-now jit-lock-function redisplay_internal\ \(C\ function\) term-emulate-terminal nil nil nil nil nil nil nil nil nil] 24 [timer-set-time run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil nil nil] 336 [run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil] 128 [timer--activate timer-activate run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil nil] 1776 [term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 696686 [term-insert-char term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 626696 [font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1552f7d7dcdc7903>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil nil] 551152 [jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil] 966976 [font-lock-set-defaults font-lock-fontify-region "#<compiled -0x1552f717581f4503>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil nil] 8448 [jit-lock-after-change term-insert-char term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 793093 [font-lock-fontify-region "#<compiled -0x1552f49195387503>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil nil nil] 449088 [jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 298368 [text-property-any jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil] 1735 [font-lock-default-unfontify-region font-lock-unfontify-region font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1540f4b56edb7603>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil] 5205 ["#<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_9>" apply timer-event-handler term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 1056 [font-lock-default-unfontify-region font-lock-unfontify-region font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1546fc636c304d03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil] 1735 [syntax-ppss-flush-cache term-insert-char term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 1735 ["#<compiled 0x2a9b9e93e687e>" jit-lock-after-change term-insert-char term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil] 1735 [match-data jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil] 3470 [timer-set-time run-at-time undo-auto--boundary-ensure-timer undo-auto--undoable-change term-handle-exit term-sentinel nil nil nil nil nil nil nil nil nil nil] 24 [term-sentinel nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 1016 [read-extended-command byte-code command-execute nil nil nil nil nil nil nil nil nil nil nil nil nil] 4144 [show-paren-function apply timer-event-handler completing-read-default read-extended-command-1 read-extended-command byte-code command-execute nil nil nil nil nil nil nil nil] 4144 [window-min-size frame-windows-min-size completing-read-default read-extended-command-1 read-extended-command byte-code command-execute nil nil nil nil nil nil nil nil nil] 1056)) (25475 48364 744075 996000) nil]
[-- Attachment #1.4: Type: text/plain, Size: 196 bytes --]
--
Akib Azmain Turja, GPG key: 70018CE5819F17A3BBA666AFE74F0EFA922AE7F5
Fediverse: akib@hostux.social
Codeberg: akib
emailselfdefense.fsf.org | "Nothing can be secure without encryption."
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#59641: term is very slow
2022-11-27 20:00 bug#59641: term is very slow Akib Azmain Turja via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-11-27 20:31 ` Eli Zaretskii
2022-12-16 18:29 ` Akib Azmain Turja via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 1 reply; 6+ messages in thread
From: Eli Zaretskii @ 2022-11-27 20:31 UTC (permalink / raw)
To: Akib Azmain Turja; +Cc: 59641
> Date: Mon, 28 Nov 2022 02:00:29 +0600
> From: Akib Azmain Turja via "Bug reports for GNU Emacs,
> the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
>
> Term mode is very slow. On my computer, Coterm is 2-3x faster than
> term, and my own terminal emulator, Eat, is 4-5x faster.
>
> I tried to profile Term. Steps:
>
> 1. emacs -Q (+ -nw, environment variable DISPLAY was unset)
> 2. M-x profiler-start RET cpu+mem RET
> 3. M-x term
> 4. Run the following stupid command:
> timeout 1 bash -c 'i=0 ; while true ; do echo $i ; i=$((i+1)) ; done'
> Note I also run emacs -nw in before this command.
> 5. Wait for finishing.
> 6. M-x profiler-stop
> 7. M-x profiler-report
>
> Here are the reports (attached), but don't seem to be human readable:
Copy them from the display shown by profiler-report, after you expand it
completely.
And the "cpu" profile is enough; the "mem" one doesn't add anything useful.
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#59641: term is very slow
2022-11-27 20:31 ` Eli Zaretskii
@ 2022-12-16 18:29 ` Akib Azmain Turja via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-12-16 18:57 ` Eli Zaretskii
0 siblings, 1 reply; 6+ messages in thread
From: Akib Azmain Turja via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-12-16 18:29 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 59641
[-- Attachment #1: Type: text/plain, Size: 8088 bytes --]
Eli Zaretskii <eliz@gnu.org> writes:
>> Date: Mon, 28 Nov 2022 02:00:29 +0600
>> From: Akib Azmain Turja via "Bug reports for GNU Emacs,
>> the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
>>
>> Term mode is very slow. On my computer, Coterm is 2-3x faster than
>> term, and my own terminal emulator, Eat, is 4-5x faster.
>>
>> I tried to profile Term. Steps:
>>
>> 1. emacs -Q (+ -nw, environment variable DISPLAY was unset)
>> 2. M-x profiler-start RET cpu+mem RET
>> 3. M-x term
>> 4. Run the following stupid command:
>> timeout 1 bash -c 'i=0 ; while true ; do echo $i ; i=$((i+1)) ; done'
>> Note I also run emacs -nw in before this command.
>> 5. Wait for finishing.
>> 6. M-x profiler-stop
>> 7. M-x profiler-report
>>
>> Here are the reports (attached), but don't seem to be human readable:
>
> Copy them from the display shown by profiler-report, after you expand it
> completely.
>
> And the "cpu" profile is enough; the "mem" one doesn't add anything useful.
Sorry, I missed this reply. I found this in debbugs.gnu.org. :O
Here is the data: (I didn't redo the steps, I just did
'M-x profiler-find-profile RET path/to/profile'. ;) )
--8<---------------cut here---------------start------------->8---
9397 95% - term-emulate-terminal
2710 27% - term-handle-ansi-escape
1831 18% - term-down
8 0% term-move-columns
765 7% - term-goto
714 7% term-down
82 0% - term--handle-colors-list
66 0% - term--color-as-hex
34 0% - face-background
34 0% - face-attribute
20 0% - face-attribute-merged-with
16 0% face-attribute
6 0% face-attribute
32 0% - face-foreground
20 0% - face-attribute
8 0% face-attribute
1846 18% - term-down
68 0% - vertical-motion
68 0% - jit-lock-function
68 0% - jit-lock-fontify-now
28 0% - jit-lock--run-functions
8 0% - #<compiled -0x1552f4e0aae95e03>
8 0% - font-lock-fontify-region
8 0% - font-lock-default-fontify-region
8 0% font-lock-unfontify-region
8 0% - #<compiled -0x1554fa224e318f03>
8 0% - font-lock-fontify-region
8 0% font-lock-default-fontify-region
4 0% - #<compiled -0x1546c88d0dca1d03>
4 0% - font-lock-fontify-region
4 0% - font-lock-default-fontify-region
4 0% font-lock-extend-region-wholelines
4 0% - #<compiled -0x1546c2ed8adb7d03>
4 0% font-lock-fontify-region
68 0% - term-insert-char
28 0% jit-lock-after-change
28 0% term-move-columns
379 3% - vertical-motion
363 3% - jit-lock-function
317 3% - jit-lock-fontify-now
155 1% - run-with-timer
155 1% - run-at-time
100 1% - timer-activate
96 0% - timer--activate
8 0% timer--time-less-p
20 0% timer-set-time
98 0% - jit-lock--run-functions
22 0% - #<compiled -0x1552ff392e9c9603>
22 0% font-lock-fontify-region
20 0% - #<compiled -0x1552f71a36b2fc03>
20 0% - font-lock-fontify-region
20 0% - font-lock-default-fontify-region
20 0% - font-lock-extend-region-wholelines
20 0% syntax-propertize-wholelines
20 0% - #<compiled -0x1546fd5b53d9da03>
20 0% - font-lock-fontify-region
20 0% font-lock-default-fontify-region
12 0% - #<compiled -0x1552f745b3231203>
12 0% - font-lock-fontify-region
12 0% - font-lock-default-fontify-region
12 0% font-lock-extend-region-wholelines
12 0% - #<compiled -0x1540fac747b55603>
12 0% - font-lock-fontify-region
12 0% - font-lock-default-fontify-region
12 0% font-lock-unfontify-region
8 0% #<compiled -0x1540fac747b55603>
4 0% - #<compiled -0x1540f619efa85203>
4 0% - font-lock-fontify-region
4 0% font-lock-set-defaults
235 2% - term-move-columns
10 0% term-move-to-column
137 1% term-handle-deferred-scroll
111 1% jit-lock-after-change
24 0% - redisplay_internal (C function)
8 0% - term--update-term-menu
8 0% - easy-menu-change
8 0% - easy-menu-add-item
8 0% - easy-menu-get-map
8 0% - mapcar
8 0% - #<compiled 0x12afad0b062c4ebb>
8 0% easy-menu-lookup-name
8 0% - jit-lock-function
8 0% - jit-lock-fontify-now
8 0% - jit-lock--run-functions
4 0% - #<compiled -0x1540fe59cc42d603>
4 0% - font-lock-fontify-region
4 0% font-lock-set-defaults
4 0% - #<compiled -0x1540fe59cc42d603>
4 0% font-lock-fontify-region
8 0% - eval
4 0% if
12 0% syntax-ppss-flush-cache
12 0% - timer-event-handler
12 0% - apply
4 0% - show-paren-function
4 0% - show-paren--default
4 0% syntax-ppss
8 0% - eval
8 0% if
4 0% - jit-lock-function
4 0% - jit-lock-fontify-now
4 0% - jit-lock--run-functions
4 0% #<compiled -0x1546deb559806303>
347 3% - ...
347 3% Automatic GC
127 1% - command-execute
82 0% - funcall-interactively
77 0% - execute-extended-command
65 0% - command-execute
53 0% - byte-code
26 0% - require
26 0% byte-code
4 0% - read-shell-command
4 0% read-from-minibuffer
8 0% funcall-interactively
4 0% - defvar
4 0% byte-code
4 0% term-send-raw
45 0% - byte-code
45 0% - read-extended-command
45 0% - read-extended-command-1
40 0% - completing-read-default
11 0% - timer-event-handler
11 0% - apply
7 0% #<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_9>
4 0% - show-paren-function
2 0% show-paren--default
3 0% #<compiled -0xa873503662230e4>
6 0% - timer-event-handler
6 0% - apply
4 0% - #<compiled -0xb30f43a056c4866>
4 0% - execute-extended-command--shorter
4 0% #<compiled 0x1a044bbfab7de9f2>
2 0% - show-paren-function
2 0% buffer-match-p
2 0% - redisplay_internal (C function)
2 0% - redisplay--pre-redisplay-functions
2 0% - run-hook-with-args
2 0% redisplay--update-region-highlight
--8<---------------cut here---------------end--------------->8---
--
Akib Azmain Turja, GPG key: 70018CE5819F17A3BBA666AFE74F0EFA922AE7F5
Fediverse: akib@hostux.social
Codeberg: akib
emailselfdefense.fsf.org | "Nothing can be secure without encryption."
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#59641: term is very slow
2022-12-16 18:29 ` Akib Azmain Turja via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-12-16 18:57 ` Eli Zaretskii
2022-12-17 12:32 ` Akib Azmain Turja via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 1 reply; 6+ messages in thread
From: Eli Zaretskii @ 2022-12-16 18:57 UTC (permalink / raw)
To: Akib Azmain Turja; +Cc: 59641
> From: Akib Azmain Turja <akib@disroot.org>
> Cc: 59641@debbugs.gnu.org
> Date: Sat, 17 Dec 2022 00:29:02 +0600
>
> >> Here are the reports (attached), but don't seem to be human readable:
> >
> > Copy them from the display shown by profiler-report, after you expand it
> > completely.
> >
> > And the "cpu" profile is enough; the "mem" one doesn't add anything useful.
>
> Sorry, I missed this reply. I found this in debbugs.gnu.org. :O
>
> Here is the data: (I didn't redo the steps, I just did
> 'M-x profiler-find-profile RET path/to/profile'. ;) )
>
> --8<---------------cut here---------------start------------->8---
> 9397 95% - term-emulate-terminal
> 2710 27% - term-handle-ansi-escape
> 1831 18% - term-down
> 8 0% term-move-columns
> 765 7% - term-goto
Doesn't surprise me: most of the time is spent in term.el's business
logic, not in Emacs display primitives.
If you want to work on speeding up term.el, I suggest to start by
loading term.el (not term.elc) manually, and repeating the profiling
session. That could tell you in more detail where are the hot sports
in those functions at the top of the profile. Then some clever
optimization ideas are needed to make it significantly faster.
Thanks.
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#59641: term is very slow
2022-12-16 18:57 ` Eli Zaretskii
@ 2022-12-17 12:32 ` Akib Azmain Turja via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-12-17 15:47 ` Eli Zaretskii
0 siblings, 1 reply; 6+ messages in thread
From: Akib Azmain Turja via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-12-17 12:32 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 59641
[-- Attachment #1: Type: text/plain, Size: 11191 bytes --]
I missed this again! There is definitely something wrong. Anyway...
Eli Zaretskii <eliz@gnu.org> writes:
>> From: Akib Azmain Turja <akib@disroot.org>
>> Cc: 59641@debbugs.gnu.org
>> Date: Sat, 17 Dec 2022 00:29:02 +0600
>>
>> >> Here are the reports (attached), but don't seem to be human readable:
>> >
>> > Copy them from the display shown by profiler-report, after you expand it
>> > completely.
>> >
>> > And the "cpu" profile is enough; the "mem" one doesn't add anything useful.
>>
>> Sorry, I missed this reply. I found this in debbugs.gnu.org. :O
>>
>> Here is the data: (I didn't redo the steps, I just did
>> 'M-x profiler-find-profile RET path/to/profile'. ;) )
>>
>> --8<---------------cut here---------------start------------->8---
>> 9397 95% - term-emulate-terminal
>> 2710 27% - term-handle-ansi-escape
>> 1831 18% - term-down
>> 8 0% term-move-columns
>> 765 7% - term-goto
>
> Doesn't surprise me: most of the time is spent in term.el's business
> logic, not in Emacs display primitives.
I know that very well.
>
> If you want to work on speeding up term.el, I suggest to start by
> loading term.el (not term.elc) manually, and repeating the profiling
> session. That could tell you in more detail where are the hot sports
> in those functions at the top of the profile. Then some clever
> optimization ideas are needed to make it significantly faster.
>
> Thanks.
I guess the hot spot here is 'vertical-motion'. 'vertical-motion' takes
various things into account, which are unnecessary for a terminal
emulator. Eat implements its own motion functions, which make their own
assumptions (e.g. each character takes exactly one column, each line
finishes with a newline, etc). I guess this might be a reason why Eat
is faster.
Note that I'm the author of Eat, and Term is a direct competitor of Eat.
So although I want Term to be faster, I will be of course biased if I
try to improve Term. But don't get me wrong, I really want Term to do
better; competition is fun when you have tough competitors!
Here is the CPU profile data, with 'term.el' loaded:
--8<---------------cut here---------------start------------->8---
1551 87% - term-emulate-terminal
1551 87% - if
1551 87% - progn
1551 87% - save-current-buffer
1515 85% - let*
1515 85% - let
1515 85% - save-current-buffer
1515 85% - unwind-protect
1515 85% - progn
1361 76% - save-restriction
1361 76% - while
1341 75% - let
1130 63% - let*
1126 63% - cond
1126 63% - let
586 33% - funcall
108 6% - vertical-motion
100 5% - jit-lock-function
84 4% - jit-lock-fontify-now
64 3% - jit-lock--run-functions
24 1% - #<compiled -0x1546ff15e132d103>
24 1% - font-lock-fontify-region
24 1% font-lock-default-fontify-region
20 1% - #<compiled -0x1540f7d5aaa5a503>
20 1% font-lock-fontify-region
4 0% - #<compiled -0x1546e4779f110a03>
4 0% - font-lock-fontify-region
4 0% - font-lock-default-fontify-region
4 0% - font-lock-extend-region-wholelines
4 0% syntax-propertize-wholelines
4 0% #<compiled -0x15468ebfcfc1d703>
4 0% - #<compiled -0x15464f08f89a1f03>
4 0% - font-lock-fontify-region
4 0% - font-lock-default-fontify-region
4 0% #<compiled -0x7e8feab343044be>
532 30% - if
528 29% - term-down
528 29% - let
344 19% - if
304 17% - if
304 17% - progn
304 17% - setq
300 16% - -
300 16% - funcall
56 3% - vertical-motion
52 2% - jit-lock-function
48 2% - jit-lock-fontify-now
32 1% - jit-lock--run-functions
12 0% - #<compiled -0x1546ecc8334f3d03>
12 0% font-lock-fontify-region
8 0% - #<compiled -0x1546d143afc77e03>
8 0% - font-lock-fontify-region
8 0% font-lock-default-fontify-region
8 0% - #<compiled -0x1546c17e6a2d8c03>
8 0% - font-lock-fontify-region
8 0% - font-lock-default-fontify-region
8 0% font-lock-extend-region-wholelines
28 1% - progn
28 1% - term-move-columns
28 1% - term-move-to-column
28 1% let
4 0% - and
4 0% =
4 0% term-adjust-current-row-cache
184 10% - cond
176 9% - term-insert-char
172 9% - let
56 3% - put-text-property
20 1% jit-lock-after-change
4 0% syntax-ppss-flush-cache
48 2% - insert-char
20 1% jit-lock-after-change
4 0% and
203 11% - if
187 10% - progn
147 8% - let
24 1% - progn
24 1% setq
24 1% - put-text-property
8 0% jit-lock-after-change
20 1% - insert
8 0% jit-lock-after-change
4 0% - term-horizontal-column
4 0% - -
4 0% - term-current-column
4 0% - cond
4 0% setq
8 0% setq
8 0% if
16 0% setq
136 7% - if
136 7% - progn
136 7% - term-handle-deferred-scroll
136 7% - let
136 7% - if
136 7% - progn
136 7% - save-excursion
136 7% funcall
18 1% - while
18 1% - progn
18 1% - if
18 1% - progn
18 1% - let
18 1% - if
18 1% - progn
18 1% - if
18 1% not
36 2% - if
36 2% - progn
36 2% - redisplay
4 0% - redisplay_internal (C function)
4 0% - eval
4 0% if
171 9% - ...
171 9% Automatic GC
40 2% - command-execute
22 1% - byte-code
22 1% - read-extended-command
22 1% - read-extended-command-1
8 0% completing-read-default
18 1% - funcall-interactively
10 0% - minibuffer-complete
10 0% - completion-in-region
10 0% - completion--in-region
6 0% - #<compiled -0x737dfeebbd42962>
6 0% - apply
6 0% - #<compiled 0x147bf53b9756e246>
6 0% - completion--in-region-1
6 0% - completion--do-completion
6 0% - completion-try-completion
6 0% - completion--nth-completion
6 0% - completion--some
6 0% - #<compiled -0xb70f507d86b95cc>
6 0% - completion-basic-try-completion
6 0% - #<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_54>
6 0% complete-with-action
4 0% - #<compiled -0x737dfeebbd42962>
4 0% - apply
4 0% - #<compiled 0x147bf53b9756e246>
4 0% - completion--in-region-1
4 0% - completion--do-completion
4 0% - completion-try-completion
4 0% - completion--nth-completion
4 0% - completion--some
4 0% - #<compiled -0xb70f507d86b95cc>
4 0% - completion-pcm-try-completion
4 0% - completion-pcm--find-all-completions
4 0% - completion-pcm--all-completions
4 0% - #<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_54>
4 0% complete-with-action
8 0% - execute-extended-command
8 0% - command-execute
8 0% funcall-interactively
7 0% - timer-event-handler
7 0% - apply
4 0% #<compiled -0xabecf6a07658066>
3 0% - #<compiled -0xabecf6a07658066>
3 0% execute-extended-command--shorter
2 0% - redisplay_internal (C function)
2 0% - term--update-term-menu
2 0% - if
2 0% - progn
2 0% - let
2 0% - easy-menu-change
2 0% - mapcar
2 0% - #<lambda 0x1984cdb809973d69>
2 0% - vector
2 0% format
--8<---------------cut here---------------end--------------->8---
--
Akib Azmain Turja, GPG key: 70018CE5819F17A3BBA666AFE74F0EFA922AE7F5
Fediverse: akib@hostux.social
Codeberg: akib
emailselfdefense.fsf.org | "Nothing can be secure without encryption."
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#59641: term is very slow
2022-12-17 12:32 ` Akib Azmain Turja via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-12-17 15:47 ` Eli Zaretskii
0 siblings, 0 replies; 6+ messages in thread
From: Eli Zaretskii @ 2022-12-17 15:47 UTC (permalink / raw)
To: Akib Azmain Turja; +Cc: 59641
> From: Akib Azmain Turja <akib@disroot.org>
> Cc: 59641@debbugs.gnu.org
> Date: Sat, 17 Dec 2022 18:32:09 +0600
>
> I guess the hot spot here is 'vertical-motion'. 'vertical-motion' takes
> various things into account, which are unnecessary for a terminal
> emulator. Eat implements its own motion functions, which make their own
> assumptions (e.g. each character takes exactly one column, each line
> finishes with a newline, etc). I guess this might be a reason why Eat
> is faster.
If there's no need for the specific features that vertical-motion
provides, calling it might indeed be unnecessary.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2022-12-17 15:47 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-27 20:00 bug#59641: term is very slow Akib Azmain Turja via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-11-27 20:31 ` Eli Zaretskii
2022-12-16 18:29 ` Akib Azmain Turja via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-12-16 18:57 ` Eli Zaretskii
2022-12-17 12:32 ` Akib Azmain Turja via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-12-17 15:47 ` Eli Zaretskii
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.