[Top][All Lists]

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

Re: profiling latency in large org-mode buffers (under both main & org-f

From: Ihor Radchenko
Subject: Re: profiling latency in large org-mode buffers (under both main & org-fold feature)
Date: Sat, 26 Feb 2022 15:45:04 +0800

Max Nikulin <manikulin@gmail.com> writes:

> Thank you, Ihor. I am still not motivated enough to read whole page but 
> searching for "interval" (earlier I tried "overlay") resulted in the 
> following message:
> Message-ID:           <9206230917.AA16758@mole.gnu.ai.mit.edu>
> Date:         Tue, 23 Jun 92 05:17:33 -0400
> From:         rms@gnu.ai.mit.edu (Richard Stallman)
> describing tree balancing problem in GNU Emacs and linear search in lucid.
> Unfortunately there is no "id" or "name" anchors in the file suitable to 
> specify precise location. Even the link href is broken.

I think we have a misunderstanding here. That page does not contain much
of technical details. Rather a history. AFAIU, initially Emacs wanted to
implement balanced tree structure to store overlays, but the effort
stalled for a long time. Then, a company rolled out a simple list
storage causing a lot of contradiction related to FSF and a mojor Emacs
fork. At the end, the initial effort using balanced tree on GNU Emacs
side did not go anywhere and GNU Emacs eventually copied a simple list
approach that is backfiring now, when Org buffers actually do contain a
large numbers of overlays.

> Actually I suspect that markers may have a similar problem during regexp 
> searches. I am curious if it is possible to invoke a kind of "vacuum" 
> (in SQL parlance). Folding all headings and resetting refile cache does 
> not restore performance to the initial state at session startup. Maybe 
> it is effect of incremental searches.

I doubt that markers have anything to do with regexp search itself
(directly). They should only come into play when editing text in buffer,
where their performance is also O(N_markers).


reply via email to

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