Gnus development mailing list
 help / color / mirror / Atom feed
From: Ken Raeburn <raeburn@cygnus.com>
Cc: Wesley.Hardaker@sphys.unil.ch, ding@ifi.uio.no
Subject: Re: Quicker exit and re-enter of large groups
Date: 08 Jan 1997 13:12:16 -0800	[thread overview]
Message-ID: <tx1ohez50sv.fsf@cygnus.com> (raw)
In-Reply-To: Kai Grossjohann's message of 08 Jan 1997 17:39:44 +0100

Kai Grossjohann <grossjohann@charly.informatik.uni-dortmund.de> writes:

> Well, suppose there's just one new message, then surely it can be
> inserted in $O(n)$ time, whereas sorting all messages needs $O(n \log
> n)$ time, no?

You might need to merge and/or reorder threads, though.

> The main time killer (at least for me, I sort messages by number and
> use threading but no other sorting -- no scoring or suchlike) is
> summary buffer generation which takes the most time.  Thus, having to
> generate only a few lines and just sticking them in at the right
> positions would be a huge improvement.  I'm talking about groups with
> several thousands of (ticked) messages.

I do likewise.  Last time I did some profiling, gnus-dd-mmm took a big
chunk of that time -- nearly a third.  It's called for every message.
Can we speed it up somehow?  Or, more to the point, cut the cost of a
large number of invocations, perhaps with some sort of caching?

I've still got code around for caching "fuzzy simplified" subjects to
speed up kill-same-subject and such operations, by doing caching the
first time the operation is done on an article, increasing its cost a
bit, and bypassing all the regexp code when the cache is already
primed, greatly cutting the cost on later uses.  My current version
operates by adding one field to the mail-header structure for Gnus to
store information, and a new obarray for each group.

Perhaps we could extend that to store parsed-time info for each
article, and preserve the info across two accesses to the group?
Rebuilding the summary buffer would still take time, but less than it
does now (at least, after the first time for the group).

(Lars had said long ago he'd include this code or something like it in
Red Gnus, but I think it fell off the tail end of his to-do list.  Or
maybe I get a low score these days because of rants about multi-
threaded emacs and stuff. :-)

If we had a .overview.el file, maybe we could cache some of this data
long-term for nnml....


  reply	other threads:[~1997-01-08 21:12 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-01-08 14:52 Kai Grossjohann
1997-01-08 16:21 ` Wesley.Hardaker
1997-01-08 16:39   ` Kai Grossjohann
1997-01-08 21:12     ` Ken Raeburn [this message]
1997-01-09  0:10       ` David Moore
1997-01-09 11:07 ` Lars Magne Ingebrigtsen
1997-01-09 18:16   ` Hunter Kelly
1997-01-09 21:10     ` Sudeep Kumar Palat

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=tx1ohez50sv.fsf@cygnus.com \
    --to=raeburn@cygnus.com \
    --cc=Wesley.Hardaker@sphys.unil.ch \
    --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).