Re: slow `B m' due to a require for each of gnus-active-hashtb

2018-04-11 Thread Lars Ingebrigtsen
Kevin Brubeck Unhammer  writes:

> On Gnus v5.13, Emacs 24.5.1, doing `B m` takes quite a long time (10s
> and up) before it shows any prompt (but seemingly only after I've been
> using Emacs for a while). If I toggle-debug-on-quit and poormansprofile
> it a bit, the backtraces always look like this:
>
> Debugger entered--Lisp error: (quit)
>   require(nntp)
>   gnus-get-function((nntp "news.gwene.org") request-accept-article t)
>   gnus-valid-move-group-p(nntp+news\.gwene\.org:gwene\.net\.patdavid\.gimp)

[...]

> It's a lot faster if I simply comment out (require (car method)) from
> gnus-get-function (the require seems to still be there in git). If
> that's not safe (how many backend methods are there?), then perhaps
> there could be an alternate active group storage that organises active
> groups hierarchically, so it would be possible to go from
> valid-move-group to a set of groups?

Hm...  it's odd that require should be the bottleneck here, because it's
a NOOP if the feature has already been loaded.

(benchmark-run 10 (require 'nntp))

takes 0.1s on my machine.  How many groups do you have?  :-)

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no

___
info-gnus-english mailing list
info-gnus-english@gnu.org
https://lists.gnu.org/mailman/listinfo/info-gnus-english


Re: slow `B m' due to a require for each of gnus-active-hashtb

2016-08-10 Thread P. Paolini
Kevin Brubeck Unhammer  writes:

> Hi,
>
> On Gnus v5.13, Emacs 24.5.1, doing `B m` takes quite a long time (10s
> and up) before it shows any prompt (but seemingly only after I've been
> using Emacs for a while). If I toggle-debug-on-quit and poormansprofile
> it a bit, the backtraces always look like this:
>
> Debugger entered--Lisp error: (quit)
>   require(nntp)
>   gnus-get-function((nntp "news.gwene.org") request-accept-article t)
>   gnus-valid-move-group-p(nntp+news\.gwene\.org:gwene\.net\.patdavid\.gimp)
>   #[(symbol) " !\205 \nB\211\207" [predicate symbol out]
> 2](nntp+news\.gwene\.org:gwene\.net\.patdavid\.gimp)
>   mapatoms(#[(symbol) " !\205 \nB\211\207" [predicate symbol out]
> 2]
> [nntp+news\.gmane\.org:gmane\.comp\.storage\.spectrum-scale\.gpfs\.user
> ...])
>   gnus-remove-if-not(gnus-valid-move-group-p
> [nntp+news\.gmane\.org:gmane\.comp\.storage\.spectrum-scale\.gpfs\.user
> ...] t)
>   gnus-read-move-group-name("Move" "nnimap+fmmbsync:Junk Mail" (397)
> "nnimap+trigram:")
>   gnus-summary-move-article(nil)
>   call-interactively(gnus-summary-move-article nil nil)
>   command-execute(gnus-summary-move-article)
>
> It's a lot faster if I simply comment out (require (car method)) from
> gnus-get-function (the require seems to still be there in git). If
> that's not safe (how many backend methods are there?), then perhaps
> there could be an alternate active group storage that organises active
> groups hierarchically, so it would be possible to go from
> valid-move-group to a set of groups?
I


___
info-gnus-english mailing list
info-gnus-english@gnu.org
https://lists.gnu.org/mailman/listinfo/info-gnus-english