Re: article rescoring during download
Heinrich Müller <heinrich.mueller82-gM/[email protected]> Sat, 22 Dec 2012 11:15:04 +0100
| Newsgroups | gmane.comp.gnome.apps.pan.devel |
|---|---|
| Message-ID | <[email protected]> |
Am 22.12.2012 06:54, schrieb [email protected]: > Hi all, > > > I was curious what the latest pan looked like so I pulled down debian > unstable (0.139-1). There was a remarkable slowdown and much higher CPU > usage when pulling binaries from large groups as compared to 0.133. > > I grabbed the latest git code and did a little profiling. Eventually I > found a curious call being made in pan/gui/header-pane.cc, line 2527: > > > void > HeaderPane :: on_cache_added (const Quark& message_id) > { > quarks_t q; > q.insert(message_id); > _data.rescore_articles ( _group, q ); // here is slow > rebuild_article_action (message_id); > } > > > That rescore_articles call eventually gets down to a std::set_intersection > over what I believe to be the entire list of articles in the group of > interest. > > This on_cache_added call is made fairly often, possibly each time an > article's contents are retrieved. > > I couldn't see anything terribly valuable in this call since I don't use > scoring other than to plonk authors so I commented out the three related > lines and saw my bandwidth get fully utilized again. > > > As for treating this, the code is doing an intersection with a single > element set (the one quark), which is effectively a find. There might be a > faster find if these articles are already hashed. I don't know enough > about the system to suggest a complete new codepath. There might be a > "user doesn't use scoring" flag that flat avoids this call. > > > > > > Eric Ortega > > _______________________________________________ > Pan-devel mailing list > [email protected] > https://lists.nongnu.org/mailman/listinfo/pan-devel Thanks for noticing this bug, I'll fix it. Cheers.