bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#11943: 24.1.50; Emacs unusably slow when looking at large files (bid


From: Dima Kogan
Subject: bug#11943: 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)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]