I might have spoken too soon. It appears that the issue is not with nntp groups, but with nnrss. I ran the profile and saw the following:
2999 73% - command-execute 2641 64% - funcall-interactively 2637 64% - gnus 2637 64% - gnus-1 2626 63% - #<compiled 0xffd5eb68ee5dbf1> 2626 63% - gnus-setup-news 2622 63% - gnus-get-unread-articles 2403 58% - gnus-read-active-for-groups 1855 45% - gnus-read-active-file-2 1855 45% - gnus-retrieve-groups 1855 45% - nnrss-retrieve-groups 1652 40% - nnrss-check-group 1356 33% - nnrss-fetch 1288 31% - xml-parse-region 1288 31% - xml--parse-buffer 1288 31% - xml-parse-tag-1 1288 31% - xml-parse-tag-1 1288 31% - xml-parse-tag-1 1284 31% - xml-parse-tag-1 1221 29% - xml-parse-tag-1 153 3% - xml-parse-string 15 0% #<compiled 0xa4190491901ef> 16 0% + mm-url-insert 259 6% + nnrss-make-hash-index 15 0% + nnrss-find-el 4 0% nnrss-translate-file-chars 3 0% + nnrss-get-namespace-prefix 199 4% + nnrss-possibly-change-group 544 13% - gnus-request-scan 544 13% - nnmaildir-request-scan 541 13% - nnmaildir--scan 431 10% - nnmaildir--grp-add-art 401 9% - nnmaildir--update-nov 141 3% + nnheader-insert-file-contents 7 0% + nnmaildir--param 21 0% + mapcar 4 0% + gnus-finish-retrieve-group-infos 162 3% + gnus-open-server 40 0% + gnus-request-update-info 14 0% + gnus-retrieve-group-data-early 3 0% gnus-message 4 0% + gnus-cache-open 7 0% + gnus-splash 4 0% + gnus-read-init-file 4 0% + execute-extended-command 358 8% + byte-code 1107 26% - ... 1107 26% Automatic GC It appears that much of the time was spent on fetching and parsing rss feeds. I am using (setq nnrss-use-local t) which I expected to be much faster, but that gnus is still very slow. Some of you suggested to change the level of subscription to a higher number. What are the implications of this change? I mainly am interested in getting the list of new news of all subscribed groups about once a day.