Gnus development mailing list
 help / color / mirror / Atom feed
From: gsstark@MIT.EDU (Greg Stark)
Cc: ding@ifi.uio.no
Subject: Re: performance respooling articles in nnmbox or nnbabyl
Date: 17 Mar 1996 13:27:01 -0500	[thread overview]
Message-ID: <ycq20mrlgne.fsf@lola-granola.MIT.EDU> (raw)
In-Reply-To: larsi@ifi.uio.no's message of 16 Mar 1996 10:58:04 +0100


Yes, the problem only occurs when respooling from nnmbox to nnmbox
or from nnbabyl to nnbabyl.  Except i think this is a fairly common
thing to need to do. Because every time you add a new split-method 
entry you'll want to re-spool things.

A bit of background on Emacs's internal representation of buffers; 
if i get any of this wrong someone should correct me.  A buffer is
stored in a contiguous piece of memory with a gap.  the gap is always
moved to be where you are editting (with some exceptions).  Whenever an
insertion or deletion is done, the gap has to move there to provide
or take up the unused buffer space.  The only way to move the gap is
essentially equivalent to an memcopy or memmove, and is fairly CPU-
intensive.

When you request-move an article from the beginning of an mbox group
the nnmbox backend deletes the article and inserts it at the end. 
The deletion needs the gap at the beginning of the buffer and the 
insertion needs it at the end.  

I think a reasonable solution to this would be to have an optional 
nnchoke-request-move-articles that took an assoc list of article 
numbers and groups to move them to.  Only backends for which this 
allowed a more efficient implementation would provide this function.
For nnmbox and nnbabyl -request-move-articles could store all the
moved articles in a temporary buffer and insert them all at the end
of the operation.

greg


  reply	other threads:[~1996-03-17 18:27 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1996-03-16  1:30 Greg Stark
1996-03-16  9:58 ` Lars Magne Ingebrigtsen
1996-03-17 18:27   ` Greg Stark [this message]
1996-03-18 16:18     ` Lars Magne Ingebrigtsen
1996-03-17 18:39   ` Greg Stark
1996-03-18 16:18     ` Lars Magne Ingebrigtsen
1996-03-18 17:40       ` Greg Stark
1996-03-18 22:10         ` Lars Magne Ingebrigtsen

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

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

  git send-email \
    --in-reply-to=ycq20mrlgne.fsf@lola-granola.MIT.EDU \
    --to=gsstark@mit.edu \
    --cc=ding@ifi.uio.no \
    /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.
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 NNTP newsgroup(s).