LSTSRV-L Archives

LISTSERV Site Administrators' Forum

LSTSRV-L

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Topic: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Jose Maria Blasco Comellas <ZCCBJBC@EB0UB011>
Fri, 15 May 87 01:17:01 HOE
text/plain (83 lines)
The 1.5j  version of LSVSFILE  contains some  enhancements that will  speed up
GET  commands  by a factor of  2-4 (average) and  PUTs by about 60%.  The main
differences  with respect  to the  1.5i  version are  a) the  use of  LSVFILER
instead of  EXECIO to read  FILELISTs and  b) an important  design improvement
that consists in reading the filelist  up to three consecutive times to search
a filelist entry (yes, that's an *improvement*, you'll see :-).
 
LSVFILER has been extended to allow FIND and LOCATE options (much like EXECIO,
but without  delimiters), two  interesting NONUM and  NODATA options  to avoid
getting stacked/stemmed line numbers (or line  data) when you don't need them,
and, much more important, an ALL  option that returns all the lines satisfying
the target search, not only the first one (compare that with EXECIO... :-).
 
As I  said, LSVSFILE searchs each  filelist for a  matching fn ft entry  up to
three times: the first one it searchs  for fn ft directly; then it searchs for
generic  fileids matching  fn  ft;  and finally,  it  searchs  for all  'true'
filelist entries (ie,  '/F' flagged) and enters recursion if  needed. To avoid
the overhead associated with  reading a file thrice, a new  set of options has
been developed to allow keeping in-storage copies of a file upon request. This
means probably  a bit  more of  paging but reduces  substatially I/O  and wall
clock time.
 
Note that  as filelists become  larger and more  nested the new  LSVFILER gain
becomes  also percentually  greater, while  it is  neglible for  flat filelist
spaces.
 
-----> Those of you who hate statistics can stop reading here <-----
 
The  following figures  were obtained  via #CP  Q T  + GET|PUT  + #CP  Q T  by
subtraction. The following LSVSFILE versions  were benchamrked: 1.5i, 1.5j (ie
1.5i +  LSVFILER), 1.5j+  (1.5j + read  the file thrice  ---> avoid  having to
filter with rexx), 1.5j++ (1.5j+ with the in-storage file option).
 
Scenario:
 
* LISTSERV FILELIST is 158 lines long
 
* INTERN FILELIST is a child of LISTSERV. It appears at line 235 and there are
  64 filelists  before it on LISTSERV  FILELIST. One of these  has 1140 lines.
  INTERN itself has 1083 lines.
 
* M FILELIST is  also a child of  LISTSERV. It has 1140 lines,  and appears at
  line 132 in it (61 filelists before).
 
* SERVINFO FILELIST is  a child of INTERN.  To make things worse,  I've put it
  just at the bottom of intern, ie at  line 1083. There are no other childs of
  INTERN. Servinfo has 249 lines.
 
* VMFSTK HELPCMS is a 67 lines file located at the bottom of M FILELIST.
 
* TEST TEST is a test file. It's the first file on LISTSERV FILELIST, line 39.
 
* MAILBOOK INFO is the last line of SERVINFO filelist.
 
* NETMONTH 1986* is a generic entry  on SERVINFO (line 60+). I've put NETMONTH
  1986NOV (800 lines).
 
* CON MODS is a 55 lines file declared in INTERN FILELIST, line 178.
 
Here are the numbers (vtime/ttime):
 
                                1.5i        1.5j        1.5j+       1.5j++
                               -------     -------     -------     -------
 
GET VMFSTK HELPCMS            3.20/4.35   2.91/3.63   1.23/1.96   1.20/1.90
GET VMFSTK HELPCMS M          2.24/2.85   2.05/2.69   0.81/1.46   0.81/1.46
GET TEST TEST ›LISTSERV!      0.55/1.40   0.50/1.10   0.50/1.10   0.50/1.10
GET MAILBOOK INFO look!! ---> 7.46/8.28   6.70/7.05   2.09/2.86   1.98/2.66
GET MAILBOOK INFO SERVINFO    0.90/1.80   0.91/1.83   0.66/1.32   0.86/1.77
PUT NETMONTH 1986NOV SERVINFO 5.29/6.46   4.84/6.11   2.86/4.07   2.82/4.02
PUT COM MODS INTERN           2.96/3.72   2.15/3.01   1.83/2.72   1.85/2.75
 
Notes:
 
1.- GET MAILBOOK INFO is the most improved. It's also the most nested.
2.- I'm a little surprised of the 1.5j++ to 1.5j+ comparison for GET MAILBOOK
    INFO SERVINFO. Perhaps that's the extra overhead generated by reading
    1000+ lines into storage. Anyway, clock time is much improved in all
    cases, even if there is a slight increment of cpu time for 1.5j++.
3.- I've not had time to test PUTs without the filelist parameter.
 
Jose Maria

ATOM RSS1 RSS2