From unknown Sun Jun 15 01:04:13 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#9610 <9610@debbugs.gnu.org> To: bug#9610 <9610@debbugs.gnu.org> Subject: Status: 24.0.90; org-mode: sluggish response and high CPU utilization with large .org files Reply-To: bug#9610 <9610@debbugs.gnu.org> Date: Sun, 15 Jun 2025 08:04:13 +0000 retitle 9610 24.0.90; org-mode: sluggish response and high CPU utilization = with large .org files reassign 9610 emacs,org-mode submitter 9610 Steve Revilak severity 9610 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 26 22:51:28 2011 Received: (at submit) by debbugs.gnu.org; 27 Sep 2011 02:51:28 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1R8NlX-0000He-4B for submit@debbugs.gnu.org; Mon, 26 Sep 2011 22:51:27 -0400 Received: from eggs.gnu.org ([140.186.70.92]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1R8NlT-0000HY-MO for submit@debbugs.gnu.org; Mon, 26 Sep 2011 22:51:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1R8Nkh-0006F6-LX for submit@debbugs.gnu.org; Mon, 26 Sep 2011 22:50:37 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_NONE autolearn=unavailable version=3.3.1 Received: from lists.gnu.org ([140.186.70.17]:58975) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R8Nkh-0006F2-JU for submit@debbugs.gnu.org; Mon, 26 Sep 2011 22:50:35 -0400 Received: from eggs.gnu.org ([140.186.70.92]:59569) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R8Nkg-0006tS-4c for bug-gnu-emacs@gnu.org; Mon, 26 Sep 2011 22:50:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1R8Nke-0006Em-FC for bug-gnu-emacs@gnu.org; Mon, 26 Sep 2011 22:50:34 -0400 Received: from mail7.sea5.speakeasy.net ([69.17.117.52]:43572) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R8Nkd-0006EY-Jj for bug-gnu-emacs@gnu.org; Mon, 26 Sep 2011 22:50:32 -0400 Received: (qmail 20855 invoked from network); 27 Sep 2011 02:50:28 -0000 Received: from pool-98-110-175-134.bstnma.fios.verizon.net (HELO srevilak.net) (srevilak@[98.110.175.134]) (envelope-sender ) by mail7.sea5.speakeasy.net (qmail-ldap-1.03) with AES256-SHA encrypted SMTP for ; 27 Sep 2011 02:50:27 -0000 Date: Mon, 26 Sep 2011 22:50:25 -0400 From: Steve Revilak To: bug-gnu-emacs@gnu.org Subject: 24.0.90; org-mode: sluggish response and high CPU utilization with large .org files Message-ID: <20110927024957.GP23695@srevilak.net> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="ByM1h5nouWwd3kz8" Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 140.186.70.17 X-Spam-Score: -4.5 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -4.6 (----) --ByM1h5nouWwd3kz8 Content-Type: multipart/mixed; boundary="R10gueRtU1pFqy+X" Content-Disposition: inline --R10gueRtU1pFqy+X Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline Content-Transfer-Encoding: quoted-printable This bug report will be sent to the Bug-GNU-Emacs mailing list and the GNU bug tracker at debbugs.gnu.org. Please check that the From: line contains a valid email address. After a delay of up to one day, you should receive an acknowledgement at that address. Please write in English if possible, as the Emacs maintainers usually do not have translators for other languages. Please describe exactly what actions triggered the bug, and the precise symptoms of the bug. If you can, give a recipe starting from `emacs -Q': I'd like to report an org-mode regression issue. When working with large .org files, Emacs 24.0.90 becomes sluggish, and consumes large amounts of CPU. I've attached an .org file (sample.org.gz) that causes emacs to exhibit this behavior. I apologize for the large attachment, but I have not been able to reproduce this issue with small .org files. Steps to reproduce: (1) gunzip sample.org.gz (2) run "top" in a terminal window. We'll use top to monitor emacs CPU utilization. (3) Start emacs as "emacs -Q sample.org". Emacs should open the file with org-mode as the major mode. (4) Press M-> to position point at the end of the buffer. (5) Press RET and start typing. You don't need to type anything meaningful: nonsense like "fdfsds fdsfds fdsfdsf fdsfdfsds" will do. Continue typing for 10-20 seconds. (6) While typing notice the delay between pressing keys on the keyboard, and the characters being displayed in the buffer. To me, this feels similar to typing characters into an ssh session, over a slow communications link. (7) While typing, observe emacs CPU utilization in top. While performing step (5), I observed emacs using 100% CPU. (My machine has a quad-core 2.66 GHz Intel Xeon processor; emacs was fully utilizing one of the CPU cores). (8) Repeat steps (3)--(7) with emacs 23.3. With emacs 23.3, the delays in (6) are not present. As for step (7), I could not get emacs 23.3 to use more than 2--4% CPU (as reported via top). Uname for my system is Linux sunny 2.6.37.6-0.7-desktop #1 SMP PREEMPT 2011-07-21 02:17:24 +0200 x= 86_64 x86_64 x86_64 GNU/Linux Another thing you can try: put point in line 1, column zero. Press and hold the keyboard down arrow until point reaches the end of buffer; then, press and hold the keyboard up arrow until point reaches the first line of the buffer. Repeat this a few times. With emacs 24, the point movement is `jerky', and emacs uses ~ 47% CPU (as reported by top). With emacs 23.3, the point movement is `smooth', and emacs 23.3 uses 2--4% CPU (as reported by top). 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'. For information about debugging Emacs, please read the file /usr/local/emacs-24.0.90.1/share/emacs/24.0.90/etc/DEBUG. In GNU Emacs 24.0.90.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.22.1) of 2011-09-26 on sunny Windowing system distributor `The X.Org Foundation', version 11.0.10903000 configured using `configure '--prefix=3D/usr/local/emacs-24.0.90.1/'' Important settings: value of $LC_ALL: nil value of $LC_COLLATE: C 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 value of $XMODIFIERS: @im=3Dlocal locale-coding-system: utf-8-unix default enable-multibyte-characters: t Major mode: Perl Minor modes in effect: diff-auto-refine-mode: t shell-dirtrack-mode: t display-time-mode: t tooltip-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 auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t column-number-mode: t line-number-mode: t Recent input: =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 C-v C-v C-v C-v C-v C-v C-v C-v C-v C-v C-v C-v C-v=20 C-v C-v C-v C-v C-v C-v C-v C-v C-v C-v C-v C-v C-v=20 C-v C-v C-v C-v C-v C-v C-v C-v C-v C-v C-v C-v C-v=20 C-v C-v C-v C-v C-v C-v C-v C-v C-v C-v C-v C-v C-v=20 C-v C-v C-v C-v C-v C-v C-v C-v C-v C-v C-v C-v C-v=20 C-v C-v C-v C-v C-v C-v C-v =20 C-x k M-x r e p o=20 r t - e m a Recent messages: Saving file /home/srevilak/sample.org... Wrote /home/srevilak/sample.org Mark set Saving file /home/srevilak/sample.org... Wrote /home/srevilak/sample.org FOLDED CHILDREN SUBTREE byte-code: Beginning of buffer [3 times] scroll-up-command: End of buffer [5 times] scroll-up-command: End of buffer Load-path shadows: None found. Features: (shadow sort gnus-util mail-extr message sendmail rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mailabbrev mail-utils gmm-utils mailheader emacsbug perl-mode tabify pcmpl-unix vc-bzr vc-sccs vc-svn vc-dir org-clock dired-aux log-view vc-rcs two-column term disp-table ehelp electric browse-url mule-util cal-move org-table dired pcvs pcvs-parse pcvs-info pcvs-defs ewoc smerge-mode executable pcmpl-cvs ansi-color ispell diff-mode help-mode view thingatpt reftex-parse newcomment multi-isearch parse-time vc-cvs log-edit pcvs-util add-log vc ediff-merg ediff-diff ediff-wind ediff-help ediff-util ediff-mult ediff-init ediff vc-dispatcher skeleton reftex-vcr reftex-dcr reftex reftex-vars tex-mode compile shell latexenc diary-lib diary-loaddefs cal-iso vc-git org-wl org-w3m org-vm org-rmail org-mhe org-mew org-irc org-jsinfo org-infojs org-html format-spec org-exp ob-exp org-exp-blocks org-info org-gnus org-docview org-bibtex bibtex org-bbdb org-agenda org byte-opt warnings bytecomp byte-compile cconv macroexp advice help-fns advice-preload ob-emacs-lisp ob-tangle ob-ref ob-lob ob-table org-footnote org-src ob-comint comint ring ob-keys ob ob-eval org-pcomplete pcomplete org-list org-faces org-compat org-entities org-macs noutline outline easy-mmode regexp-opt cal-menu easymenu calendar cal-loaddefs edmacro kmacro paren time time-date tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image fringe 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) --R10gueRtU1pFqy+X Content-Type: application/x-gzip Content-Disposition: attachment; filename="sample.org.gz" Content-Transfer-Encoding: base64 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 Awt21bN+CgA= --R10gueRtU1pFqy+X-- --ByM1h5nouWwd3kz8 Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.16 (GNU/Linux) iEYEARECAAYFAk6BOfAACgkQX7YJI4BuyDTVDQCg7GfbfU5dwTRqrX64Rw6pAQIU pQAAoI1JSLMZFjJC8cxJUaTvqA5wkJB0 =CUye -----END PGP SIGNATURE----- --ByM1h5nouWwd3kz8-- From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 27 01:32:29 2011 Received: (at 9610) by debbugs.gnu.org; 27 Sep 2011 05:32:29 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1R8QHM-0003xj-OU for submit@debbugs.gnu.org; Tue, 27 Sep 2011 01:32:29 -0400 Received: from fencepost.gnu.org ([140.186.70.10]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1R8QHJ-0003xb-Ts for 9610@debbugs.gnu.org; Tue, 27 Sep 2011 01:32:26 -0400 Received: from eliz by fencepost.gnu.org with local (Exim 4.71) (envelope-from ) id 1R8QGV-0003lq-GR; Tue, 27 Sep 2011 01:31:35 -0400 Date: Tue, 27 Sep 2011 01:31:35 -0400 Message-Id: From: Eli Zaretskii To: Steve Revilak In-reply-to: <20110927024957.GP23695@srevilak.net> (message from Steve Revilak on Mon, 26 Sep 2011 22:50:25 -0400) Subject: Re: bug#9610: 24.0.90; org-mode: sluggish response and high CPU utilization with large .org files References: <20110927024957.GP23695@srevilak.net> X-Spam-Score: -6.6 (------) X-Debbugs-Envelope-To: 9610 Cc: Bastien Guerry , 9610@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.6 (------) > Date: Mon, 26 Sep 2011 22:50:25 -0400 > From: Steve Revilak > > I'd like to report an org-mode regression issue. When working with > large .org files, Emacs 24.0.90 becomes sluggish, and consumes large > amounts of CPU. If you type this: M-x set-variable RET bidi-paragraph-direction RET left-to-right RET does the problem go away? Org mode should do that by default, but the Org mode maintainer (CC'ed) didn't yet respond to my repeated mails about this issue. Bastien, please tell me whether you want me to make this change in the Emacs repository, or wait for you to do it in the Org mode repo and then merge to Emacs. From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 27 02:02:53 2011 Received: (at 9610) by debbugs.gnu.org; 27 Sep 2011 06:02:53 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1R8Qkm-0004ep-BV for submit@debbugs.gnu.org; Tue, 27 Sep 2011 02:02:52 -0400 Received: from mail-wy0-f172.google.com ([74.125.82.172]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1R8Qkk-0004eh-8q for 9610@debbugs.gnu.org; Tue, 27 Sep 2011 02:02:51 -0400 Received: by wyh21 with SMTP id 21so4315138wyh.3 for <9610@debbugs.gnu.org>; Mon, 26 Sep 2011 23:02:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=sender:from:to:cc:subject:in-reply-to:references:user-agent:date :message-id:mime-version:content-type; bh=lZvOOizlXddaaK+nzzf1itXouRPqW2FETxSFOswLrgs=; b=K0Sjd9+rPgeFrvJLMj/mV61aR9Hl+YsN6zRTiQWEBnUQlYV5pppC52vQDRUdgqoVT8 WSNO6IGcQGkyr1gpVsWCzjyrjX7GRHu2UE1OOIYSPnzHKNU8SF7rtisqqM1ToQzE1rje lMyV7USssaMyw+YstAUgDuLMkWCAWpVLEzYXE= Received: by 10.216.229.136 with SMTP id h8mr7796094weq.93.1317103321611; Mon, 26 Sep 2011 23:02:01 -0700 (PDT) Received: from myhost.localdomain (175.152.71.86.rev.sfr.net. [86.71.152.175]) by mx.google.com with ESMTPS id k26sm31387596wbo.16.2011.09.26.23.02.00 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 26 Sep 2011 23:02:00 -0700 (PDT) Received: by myhost.localdomain (Postfix, from userid 1000) id C5C71A96A; Tue, 27 Sep 2011 08:02:47 +0200 (CEST) From: Bastien To: Eli Zaretskii Subject: Re: bug#9610: 24.0.90; org-mode: sluggish response and high CPU utilization with large .org files In-Reply-To: (Eli Zaretskii's message of "Tue, 27 Sep 2011 01:31:35 -0400") References: <20110927024957.GP23695@srevilak.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) Date: Tue, 27 Sep 2011 08:02:47 +0200 Message-ID: <87sjnildyw.fsf@altern.org> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -3.6 (---) X-Debbugs-Envelope-To: 9610 Cc: 9610@debbugs.gnu.org, Steve Revilak X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.6 (---) Eli Zaretskii writes: > Bastien, please tell me whether you want me to make this change in the > Emacs repository, or wait for you to do it in the Org mode repo and > then merge to Emacs. Please make this change in the Emacs repository. Thanks, -- Bastien From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 27 10:44:57 2011 Received: (at 9610) by debbugs.gnu.org; 27 Sep 2011 14:44:57 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1R8Yu0-0000XC-TN for submit@debbugs.gnu.org; Tue, 27 Sep 2011 10:44:57 -0400 Received: from mail2.sea5.speakeasy.net ([69.17.117.41]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1R8Ytx-0000X2-50 for 9610@debbugs.gnu.org; Tue, 27 Sep 2011 10:44:54 -0400 Received: (qmail 4275 invoked from network); 27 Sep 2011 13:47:52 -0000 Received: from fly.runwaynine.com (HELO KAYAK.com) (srevilak@[209.104.235.1]) (envelope-sender ) by mail2.sea5.speakeasy.net (qmail-ldap-1.03) with AES256-SHA encrypted SMTP for ; 27 Sep 2011 13:47:52 -0000 Date: Tue, 27 Sep 2011 09:47:45 -0400 From: Steve Revilak To: Eli Zaretskii Subject: Re: bug#9610: 24.0.90; org-mode: sluggish response and high CPU utilization with large .org files Message-ID: <20110927134744.GA959@KAYAK.com> References: <20110927024957.GP23695@srevilak.net> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="qDbXVdCdHGoSgWSk" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Spam-Score: -1.6 (-) X-Debbugs-Envelope-To: 9610 Cc: Bastien Guerry , 9610@debbugs.gnu.org, steve@srevilak.net X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) --qDbXVdCdHGoSgWSk Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline >> I'd like to report an org-mode regression issue. When working with >> large .org files, Emacs 24.0.90 becomes sluggish, and consumes large >> amounts of CPU. >If you type this: > > M-x set-variable RET bidi-paragraph-direction RET left-to-right RET > >does the problem go away? My bug report contained two scenarios to produce sluggish response and high CPU utilization. These scenarios were (1) move point to the end of buffer, and start typing (2) Put point in line 1, column zero; press and hold the down (then up) arrows to move point down (then up) the org-mode buffer. Setting bidi-paragraph-direction: left-to-right eliminates the problem with scenario (1). However, it has no effect on scenario (2). Steve --qDbXVdCdHGoSgWSk Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.16 (Darwin) iJwEAQECAAYFAk6B1AAACgkQjsUD8riRbQCZFQQAzBbftqpZtFZff1jS1b5khTrS BHDIQpoOSdQGi5IltMaywRbYTQKulNIEQaDxmYjXFk+mDQyPhkGUkyvss8lj85Gc alVn1ryEBnjlUCbFXPA6GihhyK0VNoxlRDDRF+0FhfZK75Ss5M3hgrfBNik0i4GP 0d6bNP42bkgF2NuZ5i4= =PL5b -----END PGP SIGNATURE----- --qDbXVdCdHGoSgWSk-- From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 27 11:11:43 2011 Received: (at submit) by debbugs.gnu.org; 27 Sep 2011 15:11:43 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1R8ZJu-00019l-OX for submit@debbugs.gnu.org; Tue, 27 Sep 2011 11:11:43 -0400 Received: from eggs.gnu.org ([140.186.70.92]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1R8ZJp-00019a-Rg for submit@debbugs.gnu.org; Tue, 27 Sep 2011 11:11:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1R8ZJ0-00037o-U8 for submit@debbugs.gnu.org; Tue, 27 Sep 2011 11:10:48 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_TO_NO_BRKTS_FREEMAIL autolearn=unavailable version=3.3.1 Received: from lists.gnu.org ([140.186.70.17]:58473) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R8ZJ0-00037k-Sh for submit@debbugs.gnu.org; Tue, 27 Sep 2011 11:10:46 -0400 Received: from eggs.gnu.org ([140.186.70.92]:36780) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R8ZIw-0001Nk-Pv for bug-gnu-emacs@gnu.org; Tue, 27 Sep 2011 11:10:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1R8ZIs-000371-S0 for bug-gnu-emacs@gnu.org; Tue, 27 Sep 2011 11:10:42 -0400 Received: from lo.gmane.org ([80.91.229.12]:46016) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R8ZIs-00036v-L9 for bug-gnu-emacs@gnu.org; Tue, 27 Sep 2011 11:10:38 -0400 Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1R8ZIq-0001hF-64 for bug-gnu-emacs@gnu.org; Tue, 27 Sep 2011 17:10:36 +0200 Received: from e4300lm.epcc.ed.ac.uk ([129.215.63.156]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 27 Sep 2011 17:10:36 +0200 Received: from wence by e4300lm.epcc.ed.ac.uk with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 27 Sep 2011 17:10:36 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: bug-gnu-emacs@gnu.org From: Lawrence Mitchell Subject: Re: bug#9610: 24.0.90; org-mode: sluggish response and high CPU utilization with large .org files Date: Tue, 27 Sep 2011 16:10:25 +0100 Lines: 27 Message-ID: <87wrcum36m.fsf@gmx.li> References: <20110927024957.GP23695@srevilak.net> <20110927134744.GA959__30964.7548631348$1317134682$gmane$org@KAYAK.com> Mime-Version: 1.0 Content-Type: text/plain X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: e4300lm.epcc.ed.ac.uk User-Agent: Gnus/5.110018 (No Gnus v0.18) Emacs/24.0.50 (gnu/linux) Cancel-Lock: sha1:Gw+128J3kALChx/X+bMFNVFajyI= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 140.186.70.17 X-Spam-Score: -5.5 (-----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -5.5 (-----) Steve Revilak wrote: >>> I'd like to report an org-mode regression issue. When working with >>> large .org files, Emacs 24.0.90 becomes sluggish, and consumes large >>> amounts of CPU. >> If you type this: >> M-x set-variable RET bidi-paragraph-direction RET left-to-right RET >> does the problem go away? > My bug report contained two scenarios to produce sluggish response and > high CPU utilization. These scenarios were > (1) move point to the end of buffer, and start typing > (2) Put point in line 1, column zero; press and hold the down (then up) > arrows to move point down (then up) the org-mode buffer. > Setting bidi-paragraph-direction: left-to-right eliminates the problem > with scenario (1). However, it has no effect on scenario (2). Setting bidi-display-reordering to nil in the buffer has the effect that moving point is no longer jerky for me. Lawrence From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 27 12:48:28 2011 Received: (at 9610) by debbugs.gnu.org; 27 Sep 2011 16:48:28 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1R8apY-0003R8-B3 for submit@debbugs.gnu.org; Tue, 27 Sep 2011 12:48:28 -0400 Received: from mtaout21.012.net.il ([80.179.55.169]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1R8apU-0003Qx-6P for 9610@debbugs.gnu.org; Tue, 27 Sep 2011 12:48:25 -0400 Received: from conversion-daemon.a-mtaout21.012.net.il by a-mtaout21.012.net.il (HyperSendmail v2007.08) id <0LS600800X9Z7L00@a-mtaout21.012.net.il> for 9610@debbugs.gnu.org; Tue, 27 Sep 2011 19:47:32 +0300 (IDT) Received: from HOME-C4E4A596F7 ([84.228.8.215]) by a-mtaout21.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0LS6008QCXB76J20@a-mtaout21.012.net.il>; Tue, 27 Sep 2011 19:47:32 +0300 (IDT) Date: Tue, 27 Sep 2011 19:47:33 +0300 From: Eli Zaretskii Subject: Re: bug#9610: 24.0.90; org-mode: sluggish response and high CPU utilization with large .org files In-reply-to: <87sjnildyw.fsf@altern.org> X-012-Sender: halo1@inter.net.il To: Bastien Message-id: <83sjniexui.fsf@gnu.org> References: <20110927024957.GP23695@srevilak.net> <87sjnildyw.fsf@altern.org> X-Spam-Score: -2.0 (--) X-Debbugs-Envelope-To: 9610 Cc: 9610@debbugs.gnu.org, steve@srevilak.net X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.0 (--) > From: Bastien > Cc: Steve Revilak , 9610@debbugs.gnu.org > Date: Tue, 27 Sep 2011 08:02:47 +0200 > > Eli Zaretskii writes: > > > Bastien, please tell me whether you want me to make this change in the > > Emacs repository, or wait for you to do it in the Org mode repo and > > then merge to Emacs. > > Please make this change in the Emacs repository. Done in revision 105940. From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 27 13:24:26 2011 Received: (at 9610-done) by debbugs.gnu.org; 27 Sep 2011 17:24:26 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1R8bOM-0004Fz-8v for submit@debbugs.gnu.org; Tue, 27 Sep 2011 13:24:26 -0400 Received: from mtaout21.012.net.il ([80.179.55.169]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1R8bOI-0004Fq-Uu for 9610-done@debbugs.gnu.org; Tue, 27 Sep 2011 13:24:24 -0400 Received: from conversion-daemon.a-mtaout21.012.net.il by a-mtaout21.012.net.il (HyperSendmail v2007.08) id <0LS600800XZ08Z00@a-mtaout21.012.net.il> for 9610-done@debbugs.gnu.org; Tue, 27 Sep 2011 20:23:02 +0300 (IDT) Received: from HOME-C4E4A596F7 ([84.228.8.215]) by a-mtaout21.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0LS6008BVYYC9W20@a-mtaout21.012.net.il>; Tue, 27 Sep 2011 20:23:02 +0300 (IDT) Date: Tue, 27 Sep 2011 20:23:02 +0300 From: Eli Zaretskii Subject: Re: bug#9610: 24.0.90; org-mode: sluggish response and high CPU utilization with large .org files In-reply-to: <20110927134744.GA959@KAYAK.com> X-012-Sender: halo1@inter.net.il To: Steve Revilak Message-id: <83r531gart.fsf@gnu.org> References: <20110927024957.GP23695@srevilak.net> <20110927134744.GA959@KAYAK.com> X-Spam-Score: -2.0 (--) X-Debbugs-Envelope-To: 9610-done Cc: 9610-done@debbugs.gnu.org, steve@srevilak.net X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.0 (--) > Date: Tue, 27 Sep 2011 09:47:45 -0400 > From: Steve Revilak > Cc: 9610@debbugs.gnu.org, Bastien Guerry , steve@srevilak.net > > My bug report contained two scenarios to produce sluggish response and > high CPU utilization. These scenarios were > > (1) move point to the end of buffer, and start typing > > (2) Put point in line 1, column zero; press and hold the down (then up) > arrows to move point down (then up) the org-mode buffer. Sorry, I missed the second one. > Setting bidi-paragraph-direction: left-to-right eliminates the problem > with scenario (1). However, it has no effect on scenario (2). Yes, there was another reason for the slowdown. I found an optimization of the new display that solves the problem for me with your sample Org file. The fix is committed as revision 105941 on the trunk. If you cannot or don't want to build the trunk, the patch is reproduced below; please try it. On my machine, the cursor motion is now as fast as in Emacs 23 with the same file. I'm closing the bug. Feel free to reopen if there are any leftovers. Thanks. === modified file 'src/ChangeLog' --- src/ChangeLog 2011-09-27 08:37:07 +0000 +++ src/ChangeLog 2011-09-27 17:18:31 +0000 @@ -1,3 +1,11 @@ +2011-09-27 Eli Zaretskii + + * xdisp.c (handle_invisible_prop): If invisible text ends on a + newline, reseat the iterator instead of bidi-iterating there one + character at a time. (Bug#9610) + (BUFFER_POS_REACHED_P, move_it_in_display_line_to): Bail when past + TO_CHARPOS if the bidi iterator is at base embedding level. + 2011-09-27 Andreas Schwab * lread.c (readevalloop): Use correct code for NBSP. === modified file 'src/xdisp.c' --- src/xdisp.c 2011-09-24 16:28:25 +0000 +++ src/xdisp.c 2011-09-27 17:18:31 +0000 @@ -4056,40 +4056,67 @@ handle_invisible_prop (struct it *it) /* The position newpos is now either ZV or on visible text. */ if (it->bidi_p && newpos < ZV) { - /* With bidi iteration, the region of invisible text - could start and/or end in the middle of a non-base - embedding level. Therefore, we need to skip - invisible text using the bidi iterator, starting at - IT's current position, until we find ourselves - outside the invisible text. Skipping invisible text - _after_ bidi iteration avoids affecting the visual - order of the displayed text when invisible properties - are added or removed. */ - if (it->bidi_it.first_elt && it->bidi_it.charpos < ZV) - { - /* If we were `reseat'ed to a new paragraph, - determine the paragraph base direction. We need - to do it now because next_element_from_buffer may - not have a chance to do it, if we are going to - skip any text at the beginning, which resets the - FIRST_ELT flag. */ - bidi_paragraph_init (it->paragraph_embedding, - &it->bidi_it, 1); - } - do + EMACS_INT bpos = CHAR_TO_BYTE (newpos); + + if (FETCH_BYTE (bpos) == '\n' + || (newpos > BEGV && FETCH_BYTE (bpos - 1) == '\n')) { - bidi_move_to_visually_next (&it->bidi_it); + /* If the invisible text ends on a newline or the + character after a newline, we can avoid the + costly, character by character, bidi iteration to + newpos, and instead simply reseat the iterator + there. That's because all bidi reordering + information is tossed at the newline. This is a + big win for modes that hide complete lines, like + Outline, Org, etc. (Implementation note: the + call to reseat_1 is necessary, because it signals + to the bidi iterator that it needs to reinit its + internal information when the next element for + display is requested. */ + struct text_pos tpos; + + SET_TEXT_POS (tpos, newpos, bpos); + reseat_1 (it, tpos, 0); + } + else /* Must use the slow method. */ + { + /* With bidi iteration, the region of invisible text + could start and/or end in the middle of a + non-base embedding level. Therefore, we need to + skip invisible text using the bidi iterator, + starting at IT's current position, until we find + ourselves outside the invisible text. Skipping + invisible text _after_ bidi iteration avoids + affecting the visual order of the displayed text + when invisible properties are added or + removed. */ + if (it->bidi_it.first_elt && it->bidi_it.charpos < ZV) + { + /* If we were `reseat'ed to a new paragraph, + determine the paragraph base direction. We + need to do it now because + next_element_from_buffer may not have a + chance to do it, if we are going to skip any + text at the beginning, which resets the + FIRST_ELT flag. */ + bidi_paragraph_init (it->paragraph_embedding, + &it->bidi_it, 1); + } + do + { + bidi_move_to_visually_next (&it->bidi_it); + } + while (it->stop_charpos <= it->bidi_it.charpos + && it->bidi_it.charpos < newpos); + IT_CHARPOS (*it) = it->bidi_it.charpos; + IT_BYTEPOS (*it) = it->bidi_it.bytepos; + /* If we overstepped NEWPOS, record its position in + the iterator, so that we skip invisible text if + later the bidi iteration lands us in the + invisible region again. */ + if (IT_CHARPOS (*it) >= newpos) + it->prev_stop = newpos; } - while (it->stop_charpos <= it->bidi_it.charpos - && it->bidi_it.charpos < newpos); - IT_CHARPOS (*it) = it->bidi_it.charpos; - IT_BYTEPOS (*it) = it->bidi_it.bytepos; - /* If we overstepped NEWPOS, record its position in the - iterator, so that we skip invisible text if later the - bidi iteration lands us in the invisible region - again. */ - if (IT_CHARPOS (*it) >= newpos) - it->prev_stop = newpos; } else { @@ -7880,7 +7907,9 @@ move_it_in_display_line_to (struct it *i ((op & MOVE_TO_POS) != 0 \ && BUFFERP (it->object) \ && (IT_CHARPOS (*it) == to_charpos \ - || (!it->bidi_p && IT_CHARPOS (*it) > to_charpos) \ + || ((!it->bidi_p \ + || BIDI_AT_BASE_LEVEL (it->bidi_it)) \ + && IT_CHARPOS (*it) > to_charpos) \ || (it->what == IT_COMPOSITION \ && ((IT_CHARPOS (*it) > to_charpos \ && to_charpos >= it->cmp_it.charpos) \ @@ -7912,7 +7941,13 @@ move_it_in_display_line_to (struct it *i if ((op & MOVE_TO_POS) != 0 && BUFFERP (it->object) && it->method == GET_FROM_BUFFER - && ((!it->bidi_p && IT_CHARPOS (*it) > to_charpos) + && (((!it->bidi_p + /* When the iterator is at base embedding level, we + are guaranteed that characters are delivered for + display in strictly increasing order of their + buffer positions. */ + || BIDI_AT_BASE_LEVEL (it->bidi_it)) + && IT_CHARPOS (*it) > to_charpos) || (it->bidi_p && (prev_method == GET_FROM_IMAGE || prev_method == GET_FROM_STRETCH From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 27 13:25:25 2011 Received: (at 9610) by debbugs.gnu.org; 27 Sep 2011 17:25:25 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1R8bPI-0004I0-DN for submit@debbugs.gnu.org; Tue, 27 Sep 2011 13:25:24 -0400 Received: from mtaout22.012.net.il ([80.179.55.172]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1R8bPC-0004Hc-ME for 9610@debbugs.gnu.org; Tue, 27 Sep 2011 13:25:19 -0400 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0LS600M00YPI0F00@a-mtaout22.012.net.il> for 9610@debbugs.gnu.org; Tue, 27 Sep 2011 20:23:41 +0300 (IDT) Received: from HOME-C4E4A596F7 ([84.228.8.215]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0LS600M51YZG0120@a-mtaout22.012.net.il>; Tue, 27 Sep 2011 20:23:40 +0300 (IDT) Date: Tue, 27 Sep 2011 20:23:41 +0300 From: Eli Zaretskii Subject: Re: bug#9610: 24.0.90; org-mode: sluggish response and high CPU utilization with large .org files In-reply-to: <87wrcum36m.fsf@gmx.li> X-012-Sender: halo1@inter.net.il To: Lawrence Mitchell Message-id: <83pqilgaqq.fsf@gnu.org> References: <20110927024957.GP23695@srevilak.net> <20110927134744.GA959__30964.7548631348$1317134682$gmane$org@KAYAK.com> <87wrcum36m.fsf@gmx.li> X-Spam-Score: -2.0 (--) X-Debbugs-Envelope-To: 9610 Cc: 9610@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.0 (--) > From: Lawrence Mitchell > Date: Tue, 27 Sep 2011 16:10:25 +0100 > > Setting bidi-display-reordering to nil in the buffer has the > effect that moving point is no longer jerky for me. I think with the latest trunk, you won't need to fiddle with this variable anymore. From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 27 13:37:10 2011 Received: (at 9610) by debbugs.gnu.org; 27 Sep 2011 17:37:10 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1R8bae-0004aD-Us for submit@debbugs.gnu.org; Tue, 27 Sep 2011 13:37:09 -0400 Received: from mail-ww0-f46.google.com ([74.125.82.46]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1R8bac-0004a5-S1 for 9610@debbugs.gnu.org; Tue, 27 Sep 2011 13:37:07 -0400 Received: by wwi18 with SMTP id 18so7135062wwi.15 for <9610@debbugs.gnu.org>; Tue, 27 Sep 2011 10:36:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=sender:from:to:cc:subject:in-reply-to:references:user-agent:date :message-id:mime-version:content-type; bh=/Zt4BDsarT4b/YQuNeLIoQIaEn32SvG34Z6JWk7Zv4o=; b=r0iMJ6BWBk/6Fnc1KSLEEqAS3heBWj2bnCb8OWlFtgGQNFM0OKm9exBOliaWT0LxYU oi7eJ1E5z/w89demOaIgxb39hed9Gj7k9k5+KLu7QGT0fUyK0i+tLEdg8ZMC/JyDAHcY KfCZBmNoWjtByk6S+1wR5+E0fzuWidU9rQiPQ= Received: by 10.227.60.140 with SMTP id p12mr9580665wbh.30.1317144975669; Tue, 27 Sep 2011 10:36:15 -0700 (PDT) Received: from myhost.localdomain (LPuteaux-156-16-100-112.w80-12.abo.wanadoo.fr. [80.12.80.112]) by mx.google.com with ESMTPS id p13sm36739414wbh.13.2011.09.27.10.36.14 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 27 Sep 2011 10:36:14 -0700 (PDT) Received: by myhost.localdomain (Postfix, from userid 1000) id 5F475A976; Tue, 27 Sep 2011 19:37:00 +0200 (CEST) From: Bastien To: Eli Zaretskii Subject: Re: bug#9610: 24.0.90; org-mode: sluggish response and high CPU utilization with large .org files In-Reply-To: <83sjniexui.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 27 Sep 2011 19:47:33 +0300") References: <20110927024957.GP23695@srevilak.net> <87sjnildyw.fsf@altern.org> <83sjniexui.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.90 (gnu/linux) Date: Tue, 27 Sep 2011 19:37:00 +0200 Message-ID: <87r5316g5f.fsf@altern.org> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -3.6 (---) X-Debbugs-Envelope-To: 9610 Cc: 9610@debbugs.gnu.org, steve@srevilak.net X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.6 (---) Eli Zaretskii writes: >> Please make this change in the Emacs repository. > > Done in revision 105940. Thanks! I added your change to Org's git repo: http://orgmode.org/w/?p=org-mode.git;a=commit;h=1a97f29c342d85960a65c0bd992fee7c87850da5 Best, -- Bastien From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 27 19:48:41 2011 Received: (at 9610-done) by debbugs.gnu.org; 27 Sep 2011 23:48:41 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1R8hOC-0007AC-Ru for submit@debbugs.gnu.org; Tue, 27 Sep 2011 19:48:41 -0400 Received: from mail8.sea5.speakeasy.net ([69.17.117.53]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1R8hOA-0007A5-Qv for 9610-done@debbugs.gnu.org; Tue, 27 Sep 2011 19:48:40 -0400 Received: (qmail 26234 invoked from network); 27 Sep 2011 23:47:45 -0000 Received: from pool-108-20-203-76.bstnma.fios.verizon.net (HELO srevilak.net) (srevilak@[108.20.203.76]) (envelope-sender ) by mail8.sea5.speakeasy.net (qmail-ldap-1.03) with AES256-SHA encrypted SMTP for ; 27 Sep 2011 23:47:45 -0000 Date: Tue, 27 Sep 2011 19:47:39 -0400 From: Steve Revilak To: Eli Zaretskii Subject: Re: bug#9610: 24.0.90; org-mode: sluggish response and high CPU utilization with large .org files Message-ID: <20110927234739.GA4641@srevilak.net> References: <20110927024957.GP23695@srevilak.net> <20110927134744.GA959@KAYAK.com> <83r531gart.fsf@gnu.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="oyUTqETQ0mS9luUI" Content-Disposition: inline In-Reply-To: <83r531gart.fsf@gnu.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-Spam-Score: -2.6 (--) X-Debbugs-Envelope-To: 9610-done Cc: 9610-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.6 (--) --oyUTqETQ0mS9luUI Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline >> My bug report contained two scenarios to produce sluggish response and >> high CPU utilization. These scenarios were >> >> (1) move point to the end of buffer, and start typing >> >> (2) Put point in line 1, column zero; press and hold the down (then up) >> arrows to move point down (then up) the org-mode buffer. >Yes, there was another reason for the slowdown. I found an >optimization of the new display that solves the problem for me with >your sample Org file. The fix is committed as revision 105941 on the >trunk. If you cannot or don't want to build the trunk, the patch is >reproduced below; please try it. On my machine, the cursor motion is >now as fast as in Emacs 23 with the same file. Eli, I've tried your src/xdisp.c patch. It completely fixes scenarios (1) and (2), without the need to set bidi-paragraph-direction. I've tested the patch on two different systems: GNU/Linux (OpenSUSE 11.4) and Mac OS 10.6. Same (good) results on both. Thanks so much for the quick response! Steve (I've mailed this to 9610-done@debbugs.gnu.org; my intent was to provide confirmation of the fix, but to leave bug 9610 closed.) --oyUTqETQ0mS9luUI Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.16 (GNU/Linux) iEYEARECAAYFAk6CYJsACgkQX7YJI4BuyDQzOACffZcZq2q6meYyY7fOj9ekbqZc 9hYAn306N/IVNL+C92H+tM7MjRW2x4YB =AKeI -----END PGP SIGNATURE----- --oyUTqETQ0mS9luUI-- From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 28 03:35:01 2011 Received: (at 9610-done) by debbugs.gnu.org; 28 Sep 2011 07:35:01 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1R8ofV-0001n4-Au for submit@debbugs.gnu.org; Wed, 28 Sep 2011 03:35:01 -0400 Received: from mtaout21.012.net.il ([80.179.55.169]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1R8ofT-0001mv-Gx for 9610-done@debbugs.gnu.org; Wed, 28 Sep 2011 03:35:00 -0400 Received: from conversion-daemon.a-mtaout21.012.net.il by a-mtaout21.012.net.il (HyperSendmail v2007.08) id <0LS800A001XNND00@a-mtaout21.012.net.il> for 9610-done@debbugs.gnu.org; Wed, 28 Sep 2011 10:34:04 +0300 (IDT) Received: from HOME-C4E4A596F7 ([84.228.8.215]) by a-mtaout21.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0LS800A5G2COD2C0@a-mtaout21.012.net.il>; Wed, 28 Sep 2011 10:34:01 +0300 (IDT) Date: Wed, 28 Sep 2011 10:34:02 +0300 From: Eli Zaretskii Subject: Re: bug#9610: 24.0.90; org-mode: sluggish response and high CPU utilization with large .org files In-reply-to: <20110927234739.GA4641@srevilak.net> X-012-Sender: halo1@inter.net.il To: Steve Revilak Message-id: <83k48tf7dh.fsf@gnu.org> References: <20110927024957.GP23695@srevilak.net> <20110927134744.GA959@KAYAK.com> <83r531gart.fsf@gnu.org> <20110927234739.GA4641@srevilak.net> X-Spam-Score: -2.0 (--) X-Debbugs-Envelope-To: 9610-done Cc: 9610-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.0 (--) > Date: Tue, 27 Sep 2011 19:47:39 -0400 > From: Steve Revilak > Cc: 9610-done@debbugs.gnu.org > > I've tried your src/xdisp.c patch. It completely fixes scenarios (1) > and (2), without the need to set bidi-paragraph-direction. > > I've tested the patch on two different systems: GNU/Linux (OpenSUSE > 11.4) and Mac OS 10.6. Same (good) results on both. Thank you for verifying the fix. > (I've mailed this to 9610-done@debbugs.gnu.org; my intent was to > provide confirmation of the fix, but to leave bug 9610 closed.) That's fine. You can also write to 9610@debbugs.gnu.org: once the bug is closed, only an explicit reopen directive will reopen it. From unknown Sun Jun 15 01:04:13 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Wed, 26 Oct 2011 11:24:03 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator