* bug#13337: 24.3.50; Slow display in term mode (M-x term)
@ 2013-01-02 14:10 Øyvind Stegard
2013-01-03 6:39 ` Glenn Morris
0 siblings, 1 reply; 4+ messages in thread
From: Øyvind Stegard @ 2013-01-02 14:10 UTC (permalink / raw)
To: 13337
Hello bug list,
Display for term emulation mode is very slow in recent emacs snapshot
version.
Reproduce:
0. $ emacs -Q -nw
1. M-x term <RET> <RET> (use default /bin/bash shell)
2. Run a `find /' in terminal. (Or anything really. Even typing feels
sluggish.)
Emacs then uses 90–100% CPU and output from running command is processed
slowly. The issue is likely not related to X, since it is reproducable
also when running Emacs in gnome-terminal with `emacs -Q -nw'. Display
seems to speed up significantly when selecting another window instead
(for instance, switch from term window to minibuffer with C-c M-x ...
while `find /' is running to observe difference).
The *Messages* buffer is flooded with the following when term window is
selected (har cursor) and at the same time output is produced:
Invalid face attribute :foreground nil
Invalid face attribute :background nil
Invalid face attribute :foreground nil
Invalid face attribute :background nil
Invalid face attribute :foreground nil
Invalid face attribute :background nil
Here is some CPU profiling output while find command is running and term
window is selected, obtained with M-x profiler-start <RET> <RET> before
running find command in term, then M-x profiler-report <RET> after a
little while. (I don't know how useful this is, but adding it to bug
report regardless.)
- term-emulate-terminal 24556 92%
- #<subr vertical-motion> 12929 48%
- jit-lock-function 152 0%
- jit-lock-fontify-now 148 0%
- byte-code 92 0%
- run-hook-with-args 84 0%
- font-lock-fontify-region 84 0%
- font-lock-default-fontify-region 76 0%
- font-lock-unfontify-region 28 0%
- font-lock-default-unfontify-re 8 0%
append 4 0%
- font-lock-fontify-keywords-regio 24 0%
make-marker 4 0%
- font-lock-extend-region-multilin 8 0%
get-text-property 8 0%
byte-code 4 0%
font-lock-set-defaults 4 0%
- run-with-timer 8 0%
- apply 8 0%
- run-at-time 8 0%
timer-set-time 4 0%
- timer-activate 4 0%
- timer--activate 4 0%
- timer--time-less-p 4 0%
time-less-p 4 0%
- term-down 7384 27%
- #<subr vertical-motion> 7072 26%
- jit-lock-function 151 0%
- jit-lock-fontify-now 147 0%
- byte-code 111 0%
- run-hook-with-args 95 0%
- font-lock-fontify-region 95 0%
- font-lock-default-fontify-region 87 0%
+ font-lock-unfontify-region 20 0%
+ font-lock-fontify-keywords-reg 12 0%
+ font-lock-extend-region-wholel 11 0%
font-lock-extend-region-multil 4 0%
buffer-modified-p 4 0%
font-lock-set-defaults 4 0%
set-match-data 12 0%
- run-with-timer 12 0%
- apply 12 0%
- run-at-time 12 0%
- timer-activate 12 0%
- timer--activate 12 0%
- timer--time-less-p 12 0%
time-less-p 8 0%
text-property-any 4 0%
put-text-property 4 0%
- term-insert-char 271 1%
- insert-char 186 0%
- jit-lock-after-change 103 0%
- run-hook-with-args 56 0%
+ font-lock-extend-jit-lock-region-aft 56 0%
put-text-property 16 0%
byte-code 8 0%
buffer-modified-p 4 0%
+ put-text-property 85 0%
+ term-move-columns 16 0%
term-adjust-current-row-cache 8 0%
- redisplay 1682 6%
- redisplay_internal (C function) 1674 6%
- file-remote-p 4 0%
find-file-name-handler 4 0%
- timer-event-handler 4 0%
- byte-code 4 0%
+ apply 4 0%
+ term-handle-deferred-scroll 1162 4%
+ pos-visible-in-window-p 868 3%
decode-coding-string 131 0%
+ put-text-property 76 0%
+ jit-lock-after-change 60 0%
string-match 45 0%
+ term-move-columns 12 0%
+ term-handle-ansi-terminal-messages 7 0%
recenter 4 0%
+ term-horizontal-column 4 0%
selected-window 4 0%
+ call-interactively 1712 6%
Automatic GC 416 1%
+ list 4 0%
Usual bug report info follows:
In GNU Emacs 24.3.50.1 (x86_64-pc-linux-gnu, GTK+ Version 3.6.0)
of 2013-01-01 on louvi, modified by Debian
(emacs-snapshot package, version 2:20121231-1~ppa1~quantal1)
System Description: Ubuntu 12.10
Configured using:
`configure --build x86_64-linux-gnu --host x86_64-linux-gnu
--prefix=/usr --sharedstatedir=/var/lib --libexecdir=/usr/lib
--localstatedir=/var --infodir=/usr/share/info --mandir=/usr/share/man
--with-pop=yes
--enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/24.3.50/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.3.50/site-lisp:/usr/share/emacs/site-lisp
--without-compress-info --with-crt-dir=/usr/lib/x86_64-linux-gnu/
--with-x=yes --with-x-toolkit=gtk3 --with-imagemagick=yes'
Important settings:
value of $LANG: nb_NO.UTF-8
locale-coding-system: utf-8-unix
default enable-multibyte-characters: t
Major mode: Term
Minor modes in effect:
tooltip-mode: t
mouse-wheel-mode: t
tool-bar-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
line-number-mode: t
transient-mark-mode: t
Recent input:
ESC [ > 1 ; 3 4 0 0 ; 0 c ESC x t e r m RET RET C-c
ESC x p r f o DEL DEL o f i l e r - s t a r t RET RET
f i n d RET C-c ESC x p r o f i l e r - r e TAB p TAB
RET C-x o C-c C-c C-x o C-c o C-n C-p RET C-n C-n C-p
RET C-n C-n RET C-n C-n C-n C-n C-n RET C-n C-n RET
C-n C-n RET C-n C-n C-n C-n C-n C-n C-n C-n C-n C-a
RET C-n C-n C-p RET C-n RET C-n RET C-n RET C-p C-p
C-p C-p RET C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p
C-p C-p C-p C-p C-p C-n C-n C-n C-n C-n C-n C-n C-n
C-n C-p C-p RET C-n RET C-n RET C-n C-p C-p C-p C-p
C-p C-p C-p C-p C-p C-p C-p C-p C-n C-p RET C-n RET
C-n RET C-p C-p C-p C-p RET C-n RET C-p C-p C-p C-p
C-p C-p C-p C-p C-n C-n C-n C-n C-n C-n C-n C-n C-p
C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-x h ESC
w C-x 0 ESC x C-c ESC x t e r p ESC DEL r e p o r t
- e TAB RET
Recent messages:
Invalid face attribute :foreground nil
Invalid face attribute :background nil
Invalid face attribute :foreground nil
Invalid face attribute :background nil
Invalid face attribute :foreground nil
Invalid face attribute :background nil [3 times]
Invalid face attribute :foreground nil
Invalid face attribute :background nil [2 times]
Invalid face attribute :foreground nil
Invalid face attribute :background nil
Load-path shadows:
None found.
Features:
(shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml
mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mail-utils help-mode profiler cl-lib term disp-table easymenu
ehelp electric ring time-date tooltip ediff-hook vc-hooks
lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image regexp-opt
fringe tabulated-list newcomment lisp-mode register page menu-bar
rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax
facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak
czech european ethiopic indian cyrillic chinese case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer loaddefs button faces
cus-face macroexp files text-properties overlay sha1 md5 base64 format
env code-pages mule custom widget hashtable-print-readable backquote
make-network-process dbusbind inotify dynamic-setting
system-font-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty emacs)
Please CC me if more info is required as I am not subscribed.
Thanks,
Øyvind S.
--
< Øyvind Stegard
< http://stegard.net/
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#13337: 24.3.50; Slow display in term mode (M-x term)
2013-01-02 14:10 bug#13337: 24.3.50; Slow display in term mode (M-x term) Øyvind Stegard
@ 2013-01-03 6:39 ` Glenn Morris
2013-01-03 10:09 ` Øyvind Stegard
0 siblings, 1 reply; 4+ messages in thread
From: Glenn Morris @ 2013-01-03 6:39 UTC (permalink / raw)
To: Øyvind Stegard; +Cc: 13337
Does this patch help with performance? It should at least make the
"Invalid face attribute" messages go away.
*** lisp/term.el 2013-01-03 06:33:25 +0000
--- lisp/term.el 2013-01-03 06:37:25 +0000
***************
*** 3216,3233 ****
(let ((color
(if term-ansi-current-reverse
(face-foreground
! (elt ansi-term-color-vector term-ansi-current-color))
(face-background
! (elt ansi-term-color-vector term-ansi-current-bg-color)))))
(setq term-current-face
(list :background color
:foreground color))
) ;; No need to bother with anything else if it's invisible.
(setq term-current-face
(list :foreground
! (face-foreground (elt ansi-term-color-vector term-ansi-current-color))
:background
! (face-background (elt ansi-term-color-vector term-ansi-current-bg-color))
:inverse-video term-ansi-current-reverse))
(when term-ansi-current-bold
--- 3216,3239 ----
(let ((color
(if term-ansi-current-reverse
(face-foreground
! (elt ansi-term-color-vector term-ansi-current-color)
! nil 'default)
(face-background
! (elt ansi-term-color-vector term-ansi-current-bg-color)
! nil 'default))))
(setq term-current-face
(list :background color
:foreground color))
) ;; No need to bother with anything else if it's invisible.
(setq term-current-face
(list :foreground
! (face-foreground
! (elt ansi-term-color-vector term-ansi-current-color)
! nil 'default)
:background
! (face-background
! (elt ansi-term-color-vector term-ansi-current-bg-color)
! nil 'default)
:inverse-video term-ansi-current-reverse))
(when term-ansi-current-bold
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#13337: 24.3.50; Slow display in term mode (M-x term)
2013-01-03 6:39 ` Glenn Morris
@ 2013-01-03 10:09 ` Øyvind Stegard
2013-01-03 18:32 ` Glenn Morris
0 siblings, 1 reply; 4+ messages in thread
From: Øyvind Stegard @ 2013-01-03 10:09 UTC (permalink / raw)
To: Glenn Morris; +Cc: 13337
Glenn Morris <rgm@gnu.org> writes:
> Does this patch help with performance? It should at least make the
> "Invalid face attribute" messages go away.
Yes, the patch helps. Face attribute error messages are gone and
rendering speed is improved.
Thanks,
--
< Øyvind Stegard
< http://stegard.net/
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#13337: 24.3.50; Slow display in term mode (M-x term)
2013-01-03 10:09 ` Øyvind Stegard
@ 2013-01-03 18:32 ` Glenn Morris
0 siblings, 0 replies; 4+ messages in thread
From: Glenn Morris @ 2013-01-03 18:32 UTC (permalink / raw)
To: 13337-done
Version: 24.2.92
Thanks for checking. Applied to emacs-24 branch, should show up in trunk
in ~ 1 week or less.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-01-03 18:32 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-02 14:10 bug#13337: 24.3.50; Slow display in term mode (M-x term) Øyvind Stegard
2013-01-03 6:39 ` Glenn Morris
2013-01-03 10:09 ` Øyvind Stegard
2013-01-03 18:32 ` Glenn Morris
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).