Package: emacs;
Reported by: Dima Kogan <dima <at> secretsauce.net>
Date: Sun, 15 Jul 2012 00:57:01 UTC
Severity: normal
Found in version 24.1.50
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Dima Kogan <dima <at> secretsauce.net> To: bug-gnu-emacs <at> gnu.org Subject: 24.1.50; Emacs unusably slow when looking at large files (bidi support at fault) Date: Sat, 14 Jul 2012 17:50:51 -0700
I'm observing that when some large text files are loaded, emacs slows to a crawl. As an example, I have a 14MB file open (with emacs -Q). Every time I do (next-line) or (previous-line) it takes a few seconds. This is a > 2GHz Core2 machine, so there's no reason for this to happen. 'M-x benchmark' says that (previous-line) takes >2s each time. I discovered that if I do (setq bidi-display-reordering nil) then emacs is snappy again, with previous-line taking <1ms. The specific file I'm using to exhibit the bug consists of many repeated stanzas such as ========================= { {2.222222,2.222222,2.222222,2.2}, {-2.222222,2.222222,2.222222}, {-22.222222,22.222222,2.222222} }, ========================= without the =. Saving a stanza into a file called 'snippet', the 14MB file can be made with $ for i in `seq 17`; do cat snippet snippet > xxx; mv xxx snippet; done Thanks. In GNU Emacs 24.1.50.1 (x86_64-pc-linux-gnu, GTK+ Version 3.4.2) of 2012-06-29 on zelenka, modified by Debian (emacs-snapshot package, version 2:20120629-1) Windowing system distributor `The X.Org Foundation', version 11.0.11201902 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.1.50/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.1.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' 'build_alias=x86_64-linux-gnu' 'host_alias=x86_64-linux-gnu' 'CFLAGS=-DDEBIAN -DSITELOAD_PURESIZE_EXTRA=5000 -g -O2' 'LDFLAGS=-g -Wl,--as-needed -znocombreloc' 'CPPFLAGS=-D_FORTIFY_SOURCE=2'' Important settings: value of $LC_ALL: C value of $LANG: C locale-coding-system: nil default enable-multibyte-characters: t Major mode: Fundamental 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 blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Recent input: y <down> <down> <down> <down> <down> <down> <up> M-x b e n c h m a r k <return> ( p r e v i o u s - l i n e ) <return> <help-echo> <help-echo> M-x r e p o r t SPC b u g <return> Recent messages: For information about GNU Emacs and the GNU system, type C-h C-a. File snippet is large (13.1M), really open? (y or n) y Elapsed time: 2.232054s Load-path shadows: /usr/share/emacs/24.1.50/site-lisp/cscope/xcscope hides /usr/share/emacs/site-lisp/xcscope /usr/share/emacs/24.1.50/site-lisp/cmake-data/cmake-mode hides /usr/share/emacs/site-lisp/cmake-mode /usr/share/emacs/24.1.50/site-lisp/easypg/epg hides /usr/share/emacs/24.1.50/lisp/epg /usr/share/emacs/24.1.50/site-lisp/easypg/epa-dired hides /usr/share/emacs/24.1.50/lisp/epa-dired /usr/share/emacs/24.1.50/site-lisp/easypg/epg-config hides /usr/share/emacs/24.1.50/lisp/epg-config /usr/share/emacs/24.1.50/site-lisp/easypg/epa hides /usr/share/emacs/24.1.50/lisp/epa /usr/share/emacs/24.1.50/site-lisp/easypg/epa-file hides /usr/share/emacs/24.1.50/lisp/epa-file /usr/share/emacs/24.1.50/site-lisp/easypg/epa-mail hides /usr/share/emacs/24.1.50/lisp/epa-mail /usr/share/emacs/24.1.50/site-lisp/org-mode/org-list hides /usr/share/emacs/24.1.50/lisp/org/org-list /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-screen hides /usr/share/emacs/24.1.50/lisp/org/ob-screen /usr/share/emacs/24.1.50/site-lisp/org-mode/org-protocol hides /usr/share/emacs/24.1.50/lisp/org/org-protocol /usr/share/emacs/24.1.50/site-lisp/org-mode/org-footnote hides /usr/share/emacs/24.1.50/lisp/org/org-footnote /usr/share/emacs/24.1.50/site-lisp/org-mode/org-docview hides /usr/share/emacs/24.1.50/lisp/org/org-docview /usr/share/emacs/24.1.50/site-lisp/org-mode/org-pcomplete hides /usr/share/emacs/24.1.50/lisp/org/org-pcomplete /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-sh hides /usr/share/emacs/24.1.50/lisp/org/ob-sh /usr/share/emacs/24.1.50/site-lisp/org-mode/org-irc hides /usr/share/emacs/24.1.50/lisp/org/org-irc /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-maxima hides /usr/share/emacs/24.1.50/lisp/org/ob-maxima /usr/share/emacs/24.1.50/site-lisp/org-mode/org-mac-message hides /usr/share/emacs/24.1.50/lisp/org/org-mac-message /usr/share/emacs/24.1.50/site-lisp/org-mode/org-bibtex hides /usr/share/emacs/24.1.50/lisp/org/org-bibtex /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-asymptote hides /usr/share/emacs/24.1.50/lisp/org/ob-asymptote /usr/share/emacs/24.1.50/site-lisp/org-mode/org-bbdb hides /usr/share/emacs/24.1.50/lisp/org/org-bbdb /usr/share/emacs/24.1.50/site-lisp/org-mode/ob hides /usr/share/emacs/24.1.50/lisp/org/ob /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-lilypond hides /usr/share/emacs/24.1.50/lisp/org/ob-lilypond /usr/share/emacs/24.1.50/site-lisp/org-mode/org-exp-blocks hides /usr/share/emacs/24.1.50/lisp/org/org-exp-blocks /usr/share/emacs/24.1.50/site-lisp/org-mode/org-icalendar hides /usr/share/emacs/24.1.50/lisp/org/org-icalendar /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-gnuplot hides /usr/share/emacs/24.1.50/lisp/org/ob-gnuplot /usr/share/emacs/24.1.50/site-lisp/org-mode/org-src hides /usr/share/emacs/24.1.50/lisp/org/org-src /usr/share/emacs/24.1.50/site-lisp/org-mode/org-w3m hides /usr/share/emacs/24.1.50/lisp/org/org-w3m /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-css hides /usr/share/emacs/24.1.50/lisp/org/ob-css /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-ledger hides /usr/share/emacs/24.1.50/lisp/org/ob-ledger /usr/share/emacs/24.1.50/site-lisp/org-mode/org-wl hides /usr/share/emacs/24.1.50/lisp/org/org-wl /usr/share/emacs/24.1.50/site-lisp/org-mode/org-mew hides /usr/share/emacs/24.1.50/lisp/org/org-mew /usr/share/emacs/24.1.50/site-lisp/org-mode/org-mks hides /usr/share/emacs/24.1.50/lisp/org/org-mks /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-python hides /usr/share/emacs/24.1.50/lisp/org/ob-python /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-shen hides /usr/share/emacs/24.1.50/lisp/org/ob-shen /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-tangle hides /usr/share/emacs/24.1.50/lisp/org/ob-tangle /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-haskell hides /usr/share/emacs/24.1.50/lisp/org/ob-haskell /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-eval hides /usr/share/emacs/24.1.50/lisp/org/ob-eval /usr/share/emacs/24.1.50/site-lisp/org-mode/org-rmail hides /usr/share/emacs/24.1.50/lisp/org/org-rmail /usr/share/emacs/24.1.50/site-lisp/org-mode/org-habit hides /usr/share/emacs/24.1.50/lisp/org/org-habit /usr/share/emacs/24.1.50/site-lisp/org-mode/org-exp hides /usr/share/emacs/24.1.50/lisp/org/org-exp /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-mscgen hides /usr/share/emacs/24.1.50/lisp/org/ob-mscgen /usr/share/emacs/24.1.50/site-lisp/org-mode/org-gnus hides /usr/share/emacs/24.1.50/lisp/org/org-gnus /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-plantuml hides /usr/share/emacs/24.1.50/lisp/org/ob-plantuml /usr/share/emacs/24.1.50/site-lisp/org-mode/org-ascii hides /usr/share/emacs/24.1.50/lisp/org/org-ascii /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-octave hides /usr/share/emacs/24.1.50/lisp/org/ob-octave /usr/share/emacs/24.1.50/site-lisp/org-mode/org-entities hides /usr/share/emacs/24.1.50/lisp/org/org-entities /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-dot hides /usr/share/emacs/24.1.50/lisp/org/ob-dot /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-latex hides /usr/share/emacs/24.1.50/lisp/org/ob-latex /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-java hides /usr/share/emacs/24.1.50/lisp/org/ob-java /usr/share/emacs/24.1.50/site-lisp/org-mode/org-indent hides /usr/share/emacs/24.1.50/lisp/org/org-indent /usr/share/emacs/24.1.50/site-lisp/org-mode/org-table hides /usr/share/emacs/24.1.50/lisp/org/org-table /usr/share/emacs/24.1.50/site-lisp/org-mode/org-eshell hides /usr/share/emacs/24.1.50/lisp/org/org-eshell /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-org hides /usr/share/emacs/24.1.50/lisp/org/ob-org /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-exp hides /usr/share/emacs/24.1.50/lisp/org/ob-exp /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-keys hides /usr/share/emacs/24.1.50/lisp/org/ob-keys /usr/share/emacs/24.1.50/site-lisp/org-mode/org-install hides /usr/share/emacs/24.1.50/lisp/org/org-install /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-ref hides /usr/share/emacs/24.1.50/lisp/org/ob-ref /usr/share/emacs/24.1.50/site-lisp/org-mode/org-id hides /usr/share/emacs/24.1.50/lisp/org/org-id /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-sass hides /usr/share/emacs/24.1.50/lisp/org/ob-sass /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-picolisp hides /usr/share/emacs/24.1.50/lisp/org/ob-picolisp /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-sqlite hides /usr/share/emacs/24.1.50/lisp/org/ob-sqlite /usr/share/emacs/24.1.50/site-lisp/org-mode/org-xoxo hides /usr/share/emacs/24.1.50/lisp/org/org-xoxo /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-calc hides /usr/share/emacs/24.1.50/lisp/org/ob-calc /usr/share/emacs/24.1.50/site-lisp/org-mode/org-mhe hides /usr/share/emacs/24.1.50/lisp/org/org-mhe /usr/share/emacs/24.1.50/site-lisp/org-mode/org hides /usr/share/emacs/24.1.50/lisp/org/org /usr/share/emacs/24.1.50/site-lisp/org-mode/org-docbook hides /usr/share/emacs/24.1.50/lisp/org/org-docbook /usr/share/emacs/24.1.50/site-lisp/org-mode/org-mouse hides /usr/share/emacs/24.1.50/lisp/org/org-mouse /usr/share/emacs/24.1.50/site-lisp/org-mode/org-html hides /usr/share/emacs/24.1.50/lisp/org/org-html /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-ditaa hides /usr/share/emacs/24.1.50/lisp/org/ob-ditaa /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-ocaml hides /usr/share/emacs/24.1.50/lisp/org/ob-ocaml /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-lisp hides /usr/share/emacs/24.1.50/lisp/org/ob-lisp /usr/share/emacs/24.1.50/site-lisp/org-mode/org-jsinfo hides /usr/share/emacs/24.1.50/lisp/org/org-jsinfo /usr/share/emacs/24.1.50/site-lisp/org-mode/org-odt hides /usr/share/emacs/24.1.50/lisp/org/org-odt /usr/share/emacs/24.1.50/site-lisp/org-mode/org-macs hides /usr/share/emacs/24.1.50/lisp/org/org-macs /usr/share/emacs/24.1.50/site-lisp/org-mode/org-freemind hides /usr/share/emacs/24.1.50/lisp/org/org-freemind /usr/share/emacs/24.1.50/site-lisp/org-mode/org-archive hides /usr/share/emacs/24.1.50/lisp/org/org-archive /usr/share/emacs/24.1.50/site-lisp/org-mode/org-latex hides /usr/share/emacs/24.1.50/lisp/org/org-latex /usr/share/emacs/24.1.50/site-lisp/org-mode/org-crypt hides /usr/share/emacs/24.1.50/lisp/org/org-crypt /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-emacs-lisp hides /usr/share/emacs/24.1.50/lisp/org/ob-emacs-lisp /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-clojure hides /usr/share/emacs/24.1.50/lisp/org/ob-clojure /usr/share/emacs/24.1.50/site-lisp/org-mode/org-lparse hides /usr/share/emacs/24.1.50/lisp/org/org-lparse /usr/share/emacs/24.1.50/site-lisp/org-mode/org-colview hides /usr/share/emacs/24.1.50/lisp/org/org-colview /usr/share/emacs/24.1.50/site-lisp/org-mode/org-taskjuggler hides /usr/share/emacs/24.1.50/lisp/org/org-taskjuggler /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-matlab hides /usr/share/emacs/24.1.50/lisp/org/ob-matlab /usr/share/emacs/24.1.50/site-lisp/org-mode/org-faces hides /usr/share/emacs/24.1.50/lisp/org/org-faces /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-table hides /usr/share/emacs/24.1.50/lisp/org/ob-table /usr/share/emacs/24.1.50/site-lisp/org-mode/org-capture hides /usr/share/emacs/24.1.50/lisp/org/org-capture /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-js hides /usr/share/emacs/24.1.50/lisp/org/ob-js /usr/share/emacs/24.1.50/site-lisp/org-mode/org-mobile hides /usr/share/emacs/24.1.50/lisp/org/org-mobile /usr/share/emacs/24.1.50/site-lisp/org-mode/org-agenda hides /usr/share/emacs/24.1.50/lisp/org/org-agenda /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-sql hides /usr/share/emacs/24.1.50/lisp/org/ob-sql /usr/share/emacs/24.1.50/site-lisp/org-mode/org-special-blocks hides /usr/share/emacs/24.1.50/lisp/org/org-special-blocks /usr/share/emacs/24.1.50/site-lisp/org-mode/org-beamer hides /usr/share/emacs/24.1.50/lisp/org/org-beamer /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-fortran hides /usr/share/emacs/24.1.50/lisp/org/ob-fortran /usr/share/emacs/24.1.50/site-lisp/org-mode/org-timer hides /usr/share/emacs/24.1.50/lisp/org/org-timer /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-perl hides /usr/share/emacs/24.1.50/lisp/org/ob-perl /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-R hides /usr/share/emacs/24.1.50/lisp/org/ob-R /usr/share/emacs/24.1.50/site-lisp/org-mode/org-ctags hides /usr/share/emacs/24.1.50/lisp/org/org-ctags /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-ruby hides /usr/share/emacs/24.1.50/lisp/org/ob-ruby /usr/share/emacs/24.1.50/site-lisp/org-mode/org-compat hides /usr/share/emacs/24.1.50/lisp/org/org-compat /usr/share/emacs/24.1.50/site-lisp/org-mode/org-feed hides /usr/share/emacs/24.1.50/lisp/org/org-feed /usr/share/emacs/24.1.50/site-lisp/org-mode/org-publish hides /usr/share/emacs/24.1.50/lisp/org/org-publish /usr/share/emacs/24.1.50/site-lisp/org-mode/org-remember hides /usr/share/emacs/24.1.50/lisp/org/org-remember /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-C hides /usr/share/emacs/24.1.50/lisp/org/ob-C /usr/share/emacs/24.1.50/site-lisp/org-mode/org-vm hides /usr/share/emacs/24.1.50/lisp/org/org-vm /usr/share/emacs/24.1.50/site-lisp/org-mode/org-datetree hides /usr/share/emacs/24.1.50/lisp/org/org-datetree /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-awk hides /usr/share/emacs/24.1.50/lisp/org/ob-awk /usr/share/emacs/24.1.50/site-lisp/org-mode/org-plot hides /usr/share/emacs/24.1.50/lisp/org/org-plot /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-scheme hides /usr/share/emacs/24.1.50/lisp/org/ob-scheme /usr/share/emacs/24.1.50/site-lisp/org-mode/org-attach hides /usr/share/emacs/24.1.50/lisp/org/org-attach /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-lob hides /usr/share/emacs/24.1.50/lisp/org/ob-lob /usr/share/emacs/24.1.50/site-lisp/org-mode/ob-comint hides /usr/share/emacs/24.1.50/lisp/org/ob-comint /usr/share/emacs/24.1.50/site-lisp/org-mode/org-inlinetask hides /usr/share/emacs/24.1.50/lisp/org/org-inlinetask /usr/share/emacs/24.1.50/site-lisp/org-mode/org-clock hides /usr/share/emacs/24.1.50/lisp/org/org-clock /usr/share/emacs/24.1.50/site-lisp/org-mode/org-info hides /usr/share/emacs/24.1.50/lisp/org/org-info Features: (shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml easymenu 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 benchmark 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 files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process dbusbind dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs)
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.