Reported by: Michael Linck <mgl <at> absolute-performance.com>
Date: Fri, 17 Apr 2009 20:35:04 UTC
Severity: normal
Done: Chong Yidong <cyd <at> stupidchicken.com>
Bug is archived. No further changes may be made.
Message #5 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):
From: Michael Linck <mgl <at> absolute-performance.com> To: bug-gnu-emacs <at> gnu.org Subject: Major performance problem Date: Fri, 17 Apr 2009 14:31:16 -0600
Please write in English if possible, because the Emacs maintainers usually do not have translators to read other languages for them. Your bug report will be posted to the bug-gnu-emacs <at> gnu.org mailing list, and to the gnu.emacs.bug news group. Please describe exactly what actions triggered the bug and the precise symptoms of the bug: If you make a C++ header and try to define a long string, you can bring emacs to a grinding halt. The scenario is as follows: I need a test header to return the equivalent of some lengthy http resources for unit testing and I can't have file system interaction, so I have to hard code the scenarios in a variety of header files for the unit tests. For each resource, I need a string constant. So I have to copy the body of the resource into the cxx header. Then backslash escape the quotes, then replace newlines with '\n"[newline]"' and then auto indent the buffer. For a resource that is *merely* 8000 lines (that 8 thousand, not eight trillion) the simple quote escaping (replace '"' with '\"') takes more than 5-10 minutes, the newlines (no more than 1 per line) takes 5-10 minutes also. This BUG however, is filed because the indentation has now been in progress for over 3 hours! It was 37 percent complete an hour ago, now it's 40% complete. That emacs instance is using up a entire CPU core, and the process of indenting a bit of code seems to be slowing down hard as it goes. 37% the first 2 hours, 3% the following hour. I expect this *maybe* finish over the weekend. I've been using emacs for at least 10 years, and this is shocking. Another minor gripe is that I tried having emacs send this bug previously, but I had to decide to send it again manually, because it gives no indication of whether the bug e-mail was actually sent or not. Anyway, in my professional opinion as a developer, it's time to put a stop to any "feature" updates for e-macs and hunker down with some optimizations. emacs version 22.3.1 Thanks, guys. If Emacs crashed, and you have the Emacs process in the gdb debugger, please include the output from the following gdb commands: `bt full' and `xbacktrace'. If you would like to further debug the crash, please read the file /usr/share/emacs/22.3/etc/DEBUG for instructions. In GNU Emacs 22.3.1 (i386-redhat-linux-gnu, GTK+ Version 2.14.7) of 2009-02-09 on x86-5.fedora.phx.redhat.com Windowing system distributor `The X.Org Foundation', version 11.0.10503000 configured using `configure '--build=i386-redhat-linux-gnu' '--host=i386-redhat-linux-gnu' '--target=i386-redhat-linux-gnu' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib' '--libexecdir=/usr/libexec' '--localstatedir=/var' '--sharedstatedir=/usr/com' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--with-x-toolkit=gtk' 'build_alias=i386-redhat-linux-gnu' 'host_alias=i386-redhat-linux-gnu' 'target_alias=i386-redhat-linux-gnu' 'CFLAGS=-DMAIL_USE_LOCKF -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables'' Important settings: value of $LC_ALL: nil value of $LC_COLLATE: nil value of $LC_CTYPE: nil value of $LC_MESSAGES: nil value of $LC_MONETARY: nil value of $LC_NUMERIC: nil value of $LC_TIME: nil value of $LANG: en_US.UTF-8 locale-coding-system: utf-8 default-enable-multibyte-characters: t Major mode: C/lh Minor modes in effect: tooltip-mode: t tool-bar-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t unify-8859-on-encoding-mode: t utf-translate-cjk-mode: t auto-compression-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: identity abbrev-mode: t Recent input: <left> <left> <left> <left> <left> <left> <left> <left> <left> <left> <left> <left> <left> <left> <left> <left> <left> <left> <left> <left> <left> <left> <left> <left> <left> <left> <left> <return> <delete> <end> <delete> SPC <end> <left> <up> <down-mouse-1> <mouse-1> <tab> <return> <delete> <end> <delete> SPC <right> <right> <right> <right> <right> <C-right> <C-right> <C-right> <C-right> <C-right> <return> <tab> <backspace> <backspace> <backspace> <backspace> <backspace> <delete> <end> <delete> SPC <C-right> <C-right> <C-right> <C-right> <C-right> <C-right> <return> <tab> <backspace> <backspace> <backspace> <backspace> <backspace> <backspace> <backspace> <backspace> <delete> <end> <delete> SPC <C-right> <C-right> <C-right> <C-right> <C-right> <C-right> <C-right> <return> <delete> <end> <delete> SPC <C-right> <C-right> <C-right> <C-right> <C-right> <C-right> <C-right> <return> <delete> <end> <delete> SPC <C-right> <C-right> <C-right> <C-right> <C-right> <C-right> <C-right> <return> <delete> <help-echo> <help-echo> <help-echo> <help-echo> <help-echo> <help-echo> <help-echo> <help-echo> <help-echo> <help-echo> <help-echo> <help-echo> <help-echo> <help-echo> <help-echo> <help-echo> <help-echo> <help-echo> <down-mouse-1> <mouse-1> <return> e m a c s SPC v e r s i o n SPC i s SPC 2 2 . 3 . 1 <backspace> 1 <help-echo> <down-mouse-1> <mouse-1> <escape> <escape> <escape> <help-echo> <help-echo> <down-mouse-5> <mouse-5> <double-down-mouse-5> <double-mouse-5> <down-mouse-4> <mouse-4> <double-down-mouse-4> <double-mouse-4> <triple-down-mouse-4> <triple-mouse-4> <down-mouse-4> <mouse-4> <double-down-mouse-4> <double-mouse-4> <down-mouse-5> <mouse-5> <double-down-mouse-5> <double-mouse-5> <triple-down-mouse-5> <triple-mouse-5> <down-mouse-5> <mouse-5> <double-down-mouse-5> <double-mouse-5> <triple-down-mouse-5> <triple-mouse-5> <down-mouse-5> <mouse-5> <double-down-mouse-5> <double-mouse-5> <triple-down-mouse-5> <triple-mouse-5> <down-mouse-4> <mouse-4> <double-down-mouse-4> <double-mouse-4> <triple-down-mouse-4> <triple-mouse-4> <triple-down-mouse-4> <triple-mouse-4> <down-mouse-4> <mouse-4> <double-down-mouse-4> <double-mouse-4> <triple-down-mouse-4> <triple-mouse-4> <triple-down-mouse-4> <triple-mouse-4> <triple-down-mouse-4> <triple-mouse-4> <triple-down-mouse-4> <triple-mouse-4> <triple-down-mouse-4> <triple-mouse-4> <triple-down-mouse-4> <triple-mouse-4> <help-echo> <help-echo> <help-echo> <help-echo> <down-mouse-1> <mouse-1> C-c C-c y e s <return> <help-echo> <help-echo> <down-mouse-1> <mouse-1> <help-echo> <help-echo> <help-echo> <help-echo> <help-echo> <help-echo> <help-echo> <down-mouse-1> <mouse-1> <help-echo> <down-mouse-1> <mouse-1> <help-echo> <down-mouse-1> <mouse-1> <down-mouse-4> <mouse-4> <double-down-mouse-4> <double-mouse-4> <triple-down-mouse-4> <triple-mouse-4> <down-mouse-5> <mouse-5> <double-down-mouse-5> <double-mouse-5> <down-mouse-5> <mouse-5> <down-mouse-5> <mouse-5> <double-down-mouse-5> <double-mouse-5> <down-mouse-4> <mouse-4> <down-mouse-1> <mouse-1> <down-mouse-1> <mouse-1> M-x r e p o r t - e m a b <backspace> c s - b u g <return> Recent messages: Auto-saving...done Auto-saving...done Auto-saving...done Auto-saving...done Auto-saving...done Auto-saving...done Auto-saving...done Auto-saving...done byte-code: Beginning of buffer [7 times] Sending...done
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.