Path: utzoo!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!mcsun!hp4nl!sara5!toon From: toon@vax1.sara.nl Newsgroups: news.software.anu-news Subject: Re: PCA stats on a NEWS-reading session Summary: How to speed up ANU-news Keywords: pca, speedup, anunews Message-ID: <48@vax1.sara.nl> Date: 30 Jan 90 09:19:56 GMT References: <8910310355.AA11260@uunet.uu.net> <1794.25546a51@esat.kuleuven.ac.be> <17198@kuhub.cc.ukans.edu> <18387.25c07443@merrimack.edu> Reply-To: toon@sara.nl Organization: SARA, Academic Computing Services Amsterdam (NL) Lines: 45 In article <18387.25c07443@merrimack.edu>, rand@merrimack.edu writes: > > I just got PCA and decided to give it a go. Since most use of NEWS, and > hence where performance is an issue, is centered around reading, I profiled > a typical (for me) reading session. When reading I tend to: > > a) Read registered groups sequentially > b) When reading a group I scan down the directory with a keypad key > defined as DOWN 18 and read items of interest (20-30%) > c) After viewing all desired items I mark them all as read with a > keypad key and do a SELECT/NEW bound to a keypad key > d) goto a) .. follows a lot of numbers ... > (Did anyone actually read all of this? ;-) A collegue and I did a subset of this already in November and subsequently mailed the results to Geoff (we were using ANU-news 5.8 then). We never heared of it since. In our experiments ga_exact_name was the culprit, so we changed it to do the strcmp inline, which sped up this routine by about 50 %; by now the problem is in the index evaluation ga[i]->grp_name, which we can't change without redesigning ANU-news fundamentally. Of course, in our case also the RMS calls were important. I even mentioned to Geoff changing the NEWS.GROUPS file into a global section and mapping it once, at the beginning of a news session. The solution to use RMS global buffers is of course a better one, because it doesn't require rewriting ANU-news. BTW, before all this, I'd already modified the ANU-news sources to use &(constant expression) wherever Geoff used c$rfi(constant expression) in function argument lists. See for this (non-ANSI) trick the VAX C manual (page 14-11 for VAXC 2.4). Therefore in our measurements c$alloc_tmp doesn't show up. With this modification you save up to four function calls per occurrence (very frequent in screen management routine calls) and a lot of (expensive) heap space management (ANSI folks, are you listening ?). -- Toon Moene, SARA - Amsterdam (NL) Internet: TOON@SARA.NL Disclaimer: Don't need one. Real Programmers (as opposed to Quiche Eaters) are not afraid to claim.