MT-NewsWatcher is fast. A number of changes over the original NewsWatcher have been made to speed up various operations, especially opening groups. However, a number of different factors can impact on group opening speed. This chapter describes them.
The original NewsWatcher fetches only Subject and Author headers
from the news server, and does so using the
XHDR command which
must be given once for each header type. MT-NewsWatcher can obtain
much more information about articles, such as their posting date
and line count, so making decisions about which articles to read
easier for the user. However, this incurs an overhead in terms
of the time taken to download such information.
You can control whether MT-NewsWatcher needs to download header
in addition to the Subject header (which is always downloaded)
using the settings in the 'Subject window' panel of the preferences.
MT-NewsWatcher implements a new way of getting header information
from the server, using the
XOVER command. When this is activated,
fetching headers is usually much faster.
However, as explained below, downloading time is not a simple function of these settings. This document explains how the various settings impact downloading time.
In the 'Server options' panel of the News Servers dialog, there are a number of setting that determine how MT-NewsWatcher communicates with your news server. Most of them have speed implications.
- Use XPAT command for searches
Searching article headers for a certain string can be performed either by the news server, or by MT-NewsWatcher itself. If this option is checked, searches are performed by sending an
XPATrequest to the server, which then responds with a list of matching articles. Although this may take some time, the job of searching is done by the server. If this option is unchecked, MT-NewsWatcher must download all the headers for that group and search them itself, which is much slower and requires more memory.
Nearly all servers support
XPAT, so you should turn this option on, and only uncheck it if the server sends back an error message when you try to search.
- Use XOVER command to get headers
This is the main option that affects speed. When active, article header information is downloaded in larger chunks, which is much faster. It is described in more detail below.
Again, most servers support XOVER, so you should turn this on. Beware that some servers may cause a warning message to be displayed the first time you use it; the reason for this is described below.
- Don't open new connection when checking for new articles
Some servers return bogus article counts if the news client reuses an existing connection to request group article information. To work around this, the client has to open a new connection to check for new articles.
This is not a problem with most servers, so this option should be checked. If the 'Check for new articles' command never returns new articles, you could try turning this option off.
- Don't send MODE READER command
Some servers require that news clients identify themselves as such, by sending the 'mode reader' command (to distinguish them from other servers with which your server exchanges news). Most don't, so you should turn this option on.
- Allow up to N simultaneous connections
This controls the maximum number of concurrent connections to the news server that can be opened. 4 is a sensible value. More detail is given in the threading document.
The Options panel in the News servers dialog also contains a setting that affects speed.
- Use accurate (but slow) article counts
Checking this option causes MT-NW to fetch the full list of articles in a group from the server when checking the group for new articles (for example, when you first open your User Groups file). This can be quite slow for large groups, depending on the speed of your connection. However, it does allow MT-NW to build a precise list of what articles are available for that group, and thus give accurate counts for the number of unread articles, and the number of articles to fetch.
The way you read news can also affect how long it takes to open a group. The basic problem is fragmentation; when you open a group with lots of articles, particularly if you've just marked that group unread, then the news client has to send just a single command to get all the articles in the unread range, like:
get headers for 2350-4567
Now, when you read an article here and there, next time you open the group the news client requests those articles that you have not read before. So if you read articles 2360, 3420 and 4560 and close the group, next time you open it the clients sends
get headers for 2350-2359
get headers for 2361-3419
get headers for 3421-4559
get headers for 4561-4567
After each request, the client waits for the server to send back headers for those articles before requesting the next batch (at least, that's how the NewsWatchers are implemented). So there are a lot more round-trips to the server, and opening the group takes longer.
This is why the style of reading news where you mark a group read, after just reading those articles you are interested in, is faster. In the MT-NewsWatcher, the 'Next Group' command does just this.
There are a number of settings that determine which headers need to be obtained from the server. These are:
- 'Subject windows' Preferences
There are three checkboxes in this preferences panel control whether or not authors, dates and line counts are shown in subject windows. If checked, this information has to be obtained from the server.
- 'Server options' settings
The Use XOVER command to get article headers is the important setting here; its workings are described below. If checked, download time will not be affected by the choice of options in the 'Subject window' preferences, because the fetching headers with
XOVERalways includes author, subject, date and line headers.
- 'Thread articles by references' option
This option, in the 'Subject windows' preferences panel, specifies that MT-NW should attempt to build discussion threads based on the contents of the References header. When active, Message-ID and References headers are required from the server, because they are needed to build the threads. Both these headers are included in XOVER responses.
- Article Management options
There are two options that specify whether MT-NewsWatcher removes duplicate articles that you have read in another group, or have been killed by a filter in another group. These are the checkboxes in the 'Article Management' preferences panel labelled Read in another group and Filter out (killed) in another group. If you have either of these turned on, MT-NewsWatcher must fetch information from the server about which other groups an article has been posted to, which is contained in the Xref header.
The set of filters that apply to the group being downloaded may also require that additional information be obtained from the server. If you create a filter that acts on a header that is not being downloaded for other reasons, then that header will have to specifically fetched from the server. Examples of such headers include Newsgroups, NNTP-Posting-Host, Path, User-Agent.
In summary, all headers which are either to be displayed, or filtered, or used to build threads are required from the server. If XOVER is active, then most information will be contained in the response to the XOVER command, and additional headers will only be required if they are not contained in the XOVER data, which is described below.
If you find that certain groups always take a long time to open, and you want
to speed them up, you can override various default settings to make opening
these groups faster. For example, you may find that opening binaries groups
takes a long time, and seems to spend most of the time fetching the
header. In such cases, you can use Group Settings to modify the settings for
one or a set of groups.
The Group Settings that are relevant here are in the Article Lists panel:
- Thread articles by:
Threading by references will require that Message-ID and References headers are downloaded. Choose a different threading type to avoid this overhead (only useful if XOVER is turned off for this server).
- Don't fetch crosspost data
Check this box to not fetch the
Xrefheader for this group, which can make a big difference on some groups on some servers. However, this will prevent MT-NewsWatcher from being able to mark crossposts read for this group.
XOVER command is a command in the NNTP protocol that a
new client can use to get batches of header data from the server.
When the news client (e.g. MT-NewsWatcher) requests XOVER
information for a set of articles, the server replies with a block of
data for each article that must contain the following headers:
|Date||MT-NW converts this into a Macintosh date format|
|Message-ID||Needed for reference-based threading|
|References||Needed for reference-based threading|
|Xref||Contains cross-posting information
(some servers may be configured to not include this in XOVER data)
Because this information is sent in big chunks, this is much faster than fetching each of these headers independently. When receiving these data, MT-NW processes them, discards information that is not required either for display or filtering, and keeps the rest.
With XOVER active, almost all the information that you will normally need for display, threading, and a basic set of filters, will be downloaded in one go, which is fast. The exceptions are some older news servers which don't include Xref information (which is useful for filters designed to catch excessive cross-posting), and filters using the less common headers like X-Mailer, and X-Newsreader.
When you activate XOVER for the first time, you may see a warning which says:
This news server fails to respond to a command which provides information about the format of XOVER request results.
and gives you the options of either continuing at your peril, or cancelling.
This occurs because your news server does not conform to some
recent specifications about the format of XOVER responses.
News clients are supposed to be able to get information
from the server on the content of XOVER responses by using the
LIST OVERVIEW.FMT command. MT-NewsWatcher uses this
to determine what to expect from an XOVER command. However, some
servers (notably those by Microsoft and the DNEWS server) don't
LIST command. In these cases, MT-NewsWatcher
assumes that such responses must contain the headers listed in the
table above, and if it finds Xref headers, it will use these as well.
But to warn you that it is making these assumptions (which might, for
some future server, fail), you will see this warning dialog. Hit
the 'Continue' button to continue to use XOVER with the assumed format.
MT-NewsWatcher stores those headers that it has downloaded for a group until you close the subject window. Some actions may require MT-NewsWatcher to fetch more headers from the server. For example, if you edit a filter to use a new header, and then re-filter the articles, new headers will have to be fetched from the server.
- Table of Contents
- Advanced features
- The Interface