From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#35453: 26.1; Poor performance of vertical-motion in large org buffer Date: Sun, 05 May 2019 18:58:52 +0300 Message-ID: <834l68lwoz.fsf@gnu.org> References: <87pnpaob79.fsf@yantar92-laptop.i-did-not-set--mail-host-address--so-tickle-me> <83zhoatavq.fsf@gnu.org> <87k1f5ww0l.fsf@yantar92-laptop.i-did-not-set--mail-host-address--so-tickle-me> Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="155576"; mail-complaints-to="usenet@blaine.gmane.org" Cc: 35453@debbugs.gnu.org To: Ihor Radchenko Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun May 05 18:00:23 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hNJYs-000eLx-5p for geb-bug-gnu-emacs@m.gmane.org; Sun, 05 May 2019 18:00:22 +0200 Original-Received: from localhost ([127.0.0.1]:42932 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hNJYr-0006iw-4K for geb-bug-gnu-emacs@m.gmane.org; Sun, 05 May 2019 12:00:21 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:51757) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hNJYa-0006hM-94 for bug-gnu-emacs@gnu.org; Sun, 05 May 2019 12:00:05 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hNJYZ-0001Ee-9B for bug-gnu-emacs@gnu.org; Sun, 05 May 2019 12:00:04 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:41168) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hNJYZ-0001EV-6O; Sun, 05 May 2019 12:00:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hNJYZ-0008KA-0x; Sun, 05 May 2019 12:00:03 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org, emacs-orgmode@gnu.org Resent-Date: Sun, 05 May 2019 16:00:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 35453 X-GNU-PR-Package: emacs,org-mode Original-Received: via spool by 35453-submit@debbugs.gnu.org id=B35453.155707196031919 (code B ref 35453); Sun, 05 May 2019 16:00:02 +0000 Original-Received: (at 35453) by debbugs.gnu.org; 5 May 2019 15:59:20 +0000 Original-Received: from localhost ([127.0.0.1]:54712 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hNJXs-0008Ik-28 for submit@debbugs.gnu.org; Sun, 05 May 2019 11:59:20 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:37214) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hNJXp-0008IX-Tw for 35453@debbugs.gnu.org; Sun, 05 May 2019 11:59:18 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:49459) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hNJXk-0000iA-Nc; Sun, 05 May 2019 11:59:12 -0400 Original-Received: from [176.228.60.248] (port=2144 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1hNJXj-0001Bh-Fi; Sun, 05 May 2019 11:59:12 -0400 In-reply-to: <87k1f5ww0l.fsf@yantar92-laptop.i-did-not-set--mail-host-address--so-tickle-me> (message from Ihor Radchenko on Sun, 05 May 2019 09:05:46 +0800) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:158798 Archived-At: > From: Ihor Radchenko > Cc: 35453@debbugs.gnu.org > Date: Sun, 05 May 2019 09:05:46 +0800 > > > Of course, if someone comes up with ideas how to speed up > > vertical-motion without changing what Org does with overlays and/or > > how overlays are implemented, such ideas will be most welcome. > > Rather dumb idea. > Currently, vertical-motion just loops over all the intervals in the > buffer. What if we optimise next-single-char-property-change and use it > in vertical-motion? Say, the interval data structure can extended. In > addition to the currently available pointers to next and previous > intervals, each (or just 'invisible') property of the interval might > also contain a pointer to next/previous interval with different property > value. Then, by increasing the structure size a bit, we can > significantly speed up the buffer motion commands. There are no intervals in this story. The way overlays are implemented, they don't use intervals (if by that you mean the facilities in intervals.c). Someone was working on making overlays more efficient by changing the low-level implementation details, but that work is yet unfinished.