> > It would be good to know what happens in Emacs during those 88 > seconds. Please try using "M-x profiler" to find out. > Here's what I get with `M-x profiler-start`, using the default cpu sampling, `C-y` the character into a scratch buffer, wait for the character to show up, `M-x profiler-stop`, and start `M-x profiler-report`: - command-execute 34 68% - call-interactively 34 68% - byte-code 27 54% - read-extended-command 27 54% - completing-read 27 54% - completing-read-default 27 54% - read-from-minibuffer 20 40% - redisplay_internal (C function) 3 6% - tool-bar-make-keymap 1 2% - tool-bar-make-keymap-1 1 2% - mapcar 1 2% - # 1 2% - eval 1 2% - find-image 1 2% image-search-load-path 1 2% - mode-line-default-help-echo 1 2% window-at-side-p 1 2% - funcall 1 2% - # 1 2% - gui-backend-selection-exists-p 1 2% - apply 1 2% # 1 2% - command-execute 1 2% - call-interactively 1 2% - funcall-interactively 1 2% self-insert-command 1 2% - funcall-interactively 7 14% - execute-extended-command 7 14% - sit-for 6 12% - redisplay 5 10% - redisplay_internal (C function) 1 2% - tool-bar-make-keymap 1 2% - tool-bar-make-keymap-1 1 2% - mapcar 1 2% - # 1 2% - eval 1 2% - find-image 1 2% image-search-load-path 1 2% - command-execute 1 2% - call-interactively 1 2% - funcall-interactively 1 2% profiler-stop 1 2% - ... 15 30% Automatic GC 11 22% - minibuffer-complete 4 8% - completion-in-region 4 8% - completion--in-region 4 8% - # 4 8% - apply 4 8% - # 4 8% - completion--in-region-1 4 8% - completion--do-completion 4 8% - completion-try-completion 2 4% - completion--nth-completion 2 4% - completion--some 2 4% - # 2 4% - completion-basic-try-completion 2 4% - try-completion 2 4% - # 2 4% complete-with-action 2 4% - minibuffer-completion-help 2 4% - completion-all-completions 1 2% - completion--nth-completion 1 2% - completion--some 1 2% - # 1 2% - completion-basic-all-completions 1 2% - completion-pcm--all-completions 1 2% - all-completions 1 2% - # 1 2% complete-with-action 1 2% - temp-buffer-window-show 1 2% - display-buffer 1 2% - display-buffer-at-bottom 1 2% - window--display-buffer 1 2% - # 1 2% - display-completion-list 1 2% - completion--insert-strings 1 2% - mapcar 1 2% # 1 2% - timer-event-handler 1 2% - apply 1 2% # 1 2% On Sat, Apr 25, 2020 at 8:51 AM Eli Zaretskii wrote: > > From: Will Bush > > Date: Sat, 25 Apr 2020 05:34:23 -0500 > > Cc: "Basil L. Contovounesios" , 40733@debbugs.gnu.org, > > James Cloos > > > > Eli> I'm not sure I understand: you are saying that slow, but correct > > Eli> display is _worse_ than displaying a white space instead of the > > Eli> correct glyph, i.e. producing incorrect display? To me, it sounds > > Eli> like Emacs 27+ actually _improves_ things in this case. > > > > Let me quantify the performance because I've been ambiguous about it so > far: > > > > λ ~/ time emacs -Q --eval '(message "hi")' -kill > > emacs -Q --eval '(message "hi")' -kill 0.19s user 0.02s system 55% cpu > 0.371 total > > λ ~/ time emacs -Q --eval '(message "︵")' -kill > > emacs -Q --eval '(message "︵")' -kill 81.64s user 0.03s system 99% cpu > 1:21.91 total > > > > It takes ~81 seconds to do something while locking up the UI. That's > personally > > beyond my threshold for killing the process. > > It would be good to know what happens in Emacs during those 88 > seconds. Please try using "M-x profiler" to find out. >