Gnus development mailing list
 help / color / mirror / Atom feed
From: Ken Raeburn <raeburn@cygnus.com>
Subject: Re: Long time to exit summary buffer, possible speed enhancement?
Date: 29 Sep 1996 05:50:33 -0400	[thread overview]
Message-ID: <tx1d8z5r6om.fsf@cygnus.com> (raw)
In-Reply-To: Lars Magne Ingebrigtsen's message of 28 Sep 1996 22:08:18 +0200


Lars Magne Ingebrigtsen <larsi@ifi.uio.no> writes:
> Shane Holder <holder@mordor.rsn.hp.com> writes:
> > When I try to exit my mail group, it takes a longer than I think it
> > should ~10 seconds.  There is nothing to expire, nothing that gnus
> > should do.  I think part of the problem is that my list of articles is
> > pretty big, and maybe larger than it needs to be.
 ...
> Anyways, range handling isn't all that slow, so the ~10 second delay
> probably is caused by something else.  Try `(setq debug-on-quit t)'
> and then `C-g' when things "hang" (sorta).  The resulting backtrace
> should tell you which function is being slow.

Check for sparse article numbers.  I've got some nnml groups where I've
ticked some old articles and read (and thus deleted) lots of others with
higher numbers.  When I check the backtrace as Lars suggests, I find
most of the time is spent in the request-expire loop, checking article
numbers where all traces of the article have long since been deleted.
For example, if you've ticked article 100, and deleted 101-199 months
ago, it'll still check 101-199 to see if they exist.  I think I brought
this up before, during or maybe after the September development cycle.

A hack workaround to this is to move all the articles (mark everything
with `#', then hit `B m') from the mail group to that same mail group,
which causes sequential renumbering and thus removes the empty ranges.
Unfortunately, it also discards any xref info if those messages were
also stored in other mail groups.  And it's only a temporary fix.

If there's no info on an article in the overview, I don't see the point
in checking for the file on disk.

Another lament for the lack of multi-threaded elisp: The expiration
ought to be done in background after exiting the group, at a lower
priority than redisplay and user input processing, and probably async
article prefetching.  Just because it takes a while to stat and maybe
delete a few hundred existing article files (even after the above
sparse-numbering problem is fixed) doesn't mean I should have to wait
before I can start reading from the next group.  Something could
probably be thrown together to use idle cycles for this...

Ken


  reply	other threads:[~1996-09-29  9:50 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1996-09-27 20:28 Shane Holder
1996-09-28 20:08 ` Lars Magne Ingebrigtsen
1996-09-29  9:50   ` Ken Raeburn [this message]
1996-09-30 15:21     ` Shane Holder
1996-09-30 15:51       ` Ken Raeburn
1996-09-29 13:09   ` Hallvard B Furuseth
1996-09-29 21:36     ` Ken Raeburn
1996-09-30  6:37       ` Steinar Bang
1996-09-30 15:57         ` Ken Raeburn
1996-09-30  6:34     ` Steinar Bang
1996-10-01  3:39     ` Lars Magne Ingebrigtsen
1996-10-01 14:59       ` Colin Rafferty
1996-10-04 10:00         ` Hallvard B Furuseth
1996-10-04  9:54       ` Hallvard B Furuseth
1996-10-01  7:07 ` Kai Grossjohann

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=tx1d8z5r6om.fsf@cygnus.com \
    --to=raeburn@cygnus.com \
    /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).