Gnus development mailing list
 help / color / mirror / Atom feed
From: Francis Moreau <francis.moro@gmail.com>
To: ding@gnus.org
Subject: Re: Improving Gnus speed
Date: Wed, 10 Nov 2010 15:16:06 +0100	[thread overview]
Message-ID: <m2iq05qn6h.fsf@gmail.com> (raw)
In-Reply-To: <m3lj52xr6s.fsf@quimbies.gnus.org> (Lars Magne Ingebrigtsen's message of "Tue, 09 Nov 2010 19:55:23 +0100")

Lars Magne Ingebrigtsen <larsi@gnus.org> writes:

> Francis Moreau <francis.moro@gmail.com> writes:
>
>> Even if articles are cached, Gnus takes some times to display the
>> summary buffer:
>>
>> Entering in the group containing cached articles: 4 secs.
>>
>> This group contains 230 unread articles.
>
> That's obscenely slow.  Even if the 230 articles were fetched over the
> net, it shouldn't take anywhere that long.
>
>> Now display all articles in this group by doing '/ o':
>>
>> Gnus asks me:
>>
>>      How many articles from nnml+cache:nntp+news.free.fr:comp.lang.c (default 42555):
>>
>> Type <RET>.
>>
>>      Fetching headers for nnml+cache:nntp+news.free.fr:comp.lang.c...
>>      < 7 secs>
>>      done
>>      < 22 secs>
>>      Generating summary...
>>      < 3 secs>
>>      done
>
> That seems rather slow, too, but Gnus is rather slow when rendering
> large summary buffers, and I've never understood why, really.  Entering
> a 10K group takes a couple of seconds, but entering a 100K group takes
> several minutes.  So there's something exponential going on somewhere...
>
>> I'm interested in improving this, so any suggestions are welcome.
>
> (setq debug-on-quit t) and then `C-g'-ing a few times should tell you
> what function is taking so long.

Here's my first experiments:

While in the fetching headers... process I got the following backtrace:

  string-match("\\(<[^<]+>\\)[  ]*\\'" "...
  gnus-get-newsgroup-headers-xover
  gnus-fetch-headers
  gnus-summary-insert-articles
  gnus-summary-insert-old-articles


and while in the 22 secs processing, hitting C-g gives:

  parse-time-tokenize
  parse-time-string
  mail-header-parse-date
  gnus-thread-latest-date
  gnus-thread-sort-by-most-recent-date
  gnus-sort-threads-recursive
      .
  33 calls to gnus-sort-threads-recursive
      .
  gnus-sort-threads
  gnus-summary-prepare
  gnus-summary-limit
  gnus-summary-insert-old-articles


> `M-x elp-instrument-package RET gnus RET', doing something, and then
> `M-x elp-results' should give you a detailed look.

This fails with the following message:

     "Variable binding depth exceeds max-specpdl-size"

However doing 'M-x elp-results' still shows me:

  gnus-sort-threads-recursive             641         65.774695999  0.1026126302
  gnus-thread-sort-by-most-recent-date    4348        31.652889000  0.0072798732
  gnus-thread-latest-date                 8696        31.436723000  0.0036150785
  gnus-thread-total-score                 82494       17.555852999  0.0002128136
  gnus-thread-total-score-1               82494       17.134565999  0.0002077068
  gnus-summary-insert-articles            1           8.04944       8.04944
  gnus-fetch-headers                      1           8.019706      8.019706
  gnus-get-newsgroup-headers-xover        1           8.005099      8.005099
  gnus-thread-sort-by-total-score         8697        3.4791829999  0.0004000440
  gnus-id-to-thread                       82494       1.3472719999  1.633...e-05
  gnus-float-time                         41229       0.2444190000  5.928...e-06
  gnus-retrieve-headers                   2           0.0244269999  0.0122134999
  gnus-make-threads                       1           0.023105      0.023105
  gnus-sorted-nunion                      1           0.015179      0.015179
  gnus-cache-retrieve-headers             1           0.012292      0.012292
  [...]



-- 
Francis



  parent reply	other threads:[~2010-11-10 14:16 UTC|newest]

Thread overview: 103+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-09 12:35 Francis Moreau
2010-11-09 13:45 ` Didier Verna
2010-11-09 13:55   ` Francis Moreau
2010-11-09 14:00     ` Knut Anders Hatlen
2010-11-09 14:22       ` Steinar Bang
2010-11-09 14:29       ` Francis Moreau
2010-11-09 14:49         ` Richard Riley
2010-11-09 16:37           ` Didier Verna
2010-11-09 16:51             ` Richard Riley
2010-11-09 16:56               ` Steinar Bang
2010-11-09 17:12                 ` Richard Riley
2010-11-09 17:48                   ` Steinar Bang
2010-11-09 18:59                     ` Adam Sjøgren
2010-11-09 19:17                       ` Steinar Bang
2010-11-09 19:06                     ` Richard Riley
2010-11-09 14:49     ` Didier Verna
2010-11-09 15:27       ` Richard Riley
2010-11-09 15:42         ` Francis Moreau
2010-11-09 16:35         ` Didier Verna
2010-11-09 16:49           ` Richard Riley
2010-11-09 19:52           ` Francis Moreau
2010-11-09 20:48             ` Richard Riley
2010-11-09 15:04     ` Adam Sjøgren
2010-11-09 18:55 ` Lars Magne Ingebrigtsen
2010-11-09 19:58   ` Francis Moreau
2010-11-09 21:03     ` Andreas Schwab
2010-11-09 21:49       ` Ted Zlatanov
2010-11-09 22:45         ` Richard Riley
2010-11-10  8:49           ` Francis Moreau
2010-11-10 10:31             ` Francis Moreau
2010-11-10  9:39           ` Julien Danjou
2010-11-10 13:26             ` Ted Zlatanov
2010-11-10 13:28               ` Julien Danjou
2010-11-10 14:12               ` Richard Riley
2010-11-10 17:40                 ` Andreas Schwab
2010-11-10 13:38       ` Francis Moreau
2010-11-09 21:27   ` Lars Magne Ingebrigtsen
2010-11-10 14:16   ` Francis Moreau [this message]
2010-11-10 18:20     ` Lars Magne Ingebrigtsen
2010-11-11  8:14       ` Francis Moreau
2010-11-11 18:34         ` Lars Magne Ingebrigtsen
2010-11-11 19:54           ` Francis Moreau
2010-11-14 16:10             ` Lars Magne Ingebrigtsen
2010-11-15  9:40               ` Francis Moreau
2010-11-21  6:02                 ` Lars Magne Ingebrigtsen
2010-11-21 13:54                   ` Francis Moreau
2010-11-21 18:17                     ` Lars Magne Ingebrigtsen
2010-11-21 19:37                       ` Francis Moreau
2010-11-24 22:09                         ` Lars Magne Ingebrigtsen
2010-11-25  7:35                           ` Francis Moreau
2010-11-12 11:11       ` Francis Moreau
2010-11-14 16:11         ` Lars Magne Ingebrigtsen
2010-11-15  9:07           ` Francis Moreau
2010-11-21  5:44             ` Lars Magne Ingebrigtsen
2010-11-21 14:07               ` Francis Moreau
2010-11-10 18:21     ` Lars Magne Ingebrigtsen
2010-11-11  8:22       ` Francis Moreau
2010-11-11 18:33         ` Lars Magne Ingebrigtsen
2010-11-11 19:56           ` Francis Moreau
2010-11-14 16:10             ` Lars Magne Ingebrigtsen
2010-11-12 18:55     ` Dan Christensen
2010-11-12 20:07       ` Francis Moreau
2010-11-12 21:38         ` Dan Christensen
2010-11-13 20:46           ` Francis Moreau
2010-11-14  9:32             ` Francis Moreau
2010-11-29  0:40               ` Dan Christensen
2010-11-29  4:47                 ` Lars Magne Ingebrigtsen
2010-11-29  6:01                   ` Miles Bader
2010-11-29  6:18                     ` Lars Magne Ingebrigtsen
2010-11-29  6:36                       ` Lars Magne Ingebrigtsen
2010-11-29  6:40                       ` Daniel Pittman
2010-11-29  8:27                 ` Francis Moreau
2010-11-29 19:30                   ` Dan Christensen
2010-11-29 20:10                     ` Francis Moreau
2010-11-29 20:23                       ` Dan Christensen
2010-11-29 20:56                         ` Francis Moreau
2010-11-29 21:30                           ` Dan Christensen
2010-12-05 15:01                             ` Lars Magne Ingebrigtsen
2010-12-05 18:05                               ` Dan Christensen
2010-12-05 18:46                                 ` Lars Magne Ingebrigtsen
2010-11-14 16:13             ` Lars Magne Ingebrigtsen
2010-11-15  9:03               ` Francis Moreau
2010-11-21  5:43                 ` Lars Magne Ingebrigtsen
2010-11-21 14:39                   ` Francis Moreau
2010-11-14 16:14           ` Lars Magne Ingebrigtsen
2010-11-14 18:10             ` Dan Christensen
2010-11-14 18:26               ` Lars Magne Ingebrigtsen
2010-11-14 21:27                 ` Dan Christensen
2010-11-21  5:42                   ` Lars Magne Ingebrigtsen
2010-11-21 20:42                     ` Dan Christensen
2010-11-21 21:46                       ` Francis Moreau
2010-11-21 22:52                         ` Dan Christensen
2010-11-22  7:57                           ` Francis Moreau
2010-11-24 22:11                       ` Lars Magne Ingebrigtsen
2010-11-29  0:29                       ` Dan Christensen
2010-11-29  4:41                         ` Lars Magne Ingebrigtsen
2010-11-29 20:17                           ` Dan Christensen
2010-12-05 15:00                             ` Date parser in C (was: Improving Gnus speed) Lars Magne Ingebrigtsen
2010-12-05 17:27                               ` Andreas Schwab
2010-12-05 17:38                                 ` Date parser in C Lars Magne Ingebrigtsen
2010-11-09 21:47 ` Improving Gnus speed Ted Zlatanov
2010-11-09 22:55   ` Steinar Bang
2010-11-10  4:27 ` Eden Cardim

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=m2iq05qn6h.fsf@gmail.com \
    --to=francis.moro@gmail.com \
    --cc=ding@gnus.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.
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).