unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Kenichi Handa <handa@m17n.org>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: acm@muc.de, schwab@linux-m68k.org, emacs-devel@gnu.org
Subject: Re: `make-overlay' very slow
Date: Tue, 14 Apr 2009 21:03:33 +0900	[thread overview]
Message-ID: <E1LthMT-00067B-Pu@etlken> (raw)
In-Reply-To: <jwvr5zz1hzq.fsf-monnier+emacs@gnu.org> (message from Stefan Monnier on Sat, 11 Apr 2009 08:51:09 -0400)

In article <jwvr5zz1hzq.fsf-monnier+emacs@gnu.org>, Stefan Monnier <monnier@iro.umontreal.ca> writes:

> Yes, that would be great.  But note that it's not just `make-overlay':
> every time we make a modification to the buffer, we have to update the
> position of all the overlays (and markers) after point.  So, yes,
> a better data-structure for overlays (and markers) would be very welcome.

I have not yet thought about this idea in deep but perhaps
we can use one more interval tree for overlays.

More radical idea, not related to overlays, is to make one
interval tree for one text property; i.e. one for `face',
one for `fontified'...  I think it not only improves the
processing speed, but also reduces the memory usage
(next-property-change will get slower, but we use
next-single-property-change more often).

---
Kenichi Handa
handa@m17n.org




  reply	other threads:[~2009-04-14 12:03 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-02  6:52 hiding lines Werner LEMBERG
2009-04-02 19:30 ` Alan Mackenzie
2009-04-03  0:39   ` Stefan Monnier
2009-04-03 12:26     ` Alan Mackenzie
2009-04-03 13:22       ` Stefan Monnier
2009-04-06  6:11         ` Werner LEMBERG
2009-04-06 13:10           ` Stefan Monnier
2009-04-06 16:20             ` Werner LEMBERG
2009-04-07  0:50               ` Stefan Monnier
2009-04-07  5:26                 ` Werner LEMBERG
2009-04-10 19:54           ` Werner LEMBERG
2009-04-10 20:42             ` Andreas Schwab
2009-04-10 21:50               ` Werner LEMBERG
2009-04-10 22:42                 ` `make-overlay' very slow (was: hiding lines) Werner LEMBERG
2009-04-10 23:36                   ` `make-overlay' very slow Stefan Monnier
2009-04-11  6:11                     ` Werner LEMBERG
2009-04-11  7:34                       ` Lennart Borgman
2009-04-11  7:45                         ` Werner LEMBERG
2009-04-11  7:46                           ` Lennart Borgman
2009-04-11  8:33                             ` Werner LEMBERG
2009-04-11  8:55                       ` Eli Zaretskii
2009-04-11 12:51                       ` Stefan Monnier
2009-04-14 12:03                         ` Kenichi Handa [this message]
2009-04-14 13:03                           ` Stefan Monnier
2009-04-14 21:15                             ` Richard M Stallman
2009-04-15  3:56                             ` Kenichi Handa
2009-04-16 15:02                           ` clone-indirect-buffer-hook should be make-indirect-buffer-hook klaus.berndl
2009-04-03  5:44   ` hiding lines Andreas Roehler

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=E1LthMT-00067B-Pu@etlken \
    --to=handa@m17n.org \
    --cc=acm@muc.de \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    --cc=schwab@linux-m68k.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).