Hi,
Beating a dead horse :)
Gavin wanted me to do some NM-only tests (no CM stuff). So...I did. :)
The short answer is:
17% to 20% overhead when MI (Measurement Interface) is turned on.
When reading a simple flat file with FREAD intrinsic, the
path length (number of instructions) jumps from about
997 instructions to 1178 instructions, or an 18% growth.
For those who are interested, here are two more tests in detail,
both using strictly NM applications (reading a KSAM/iX file for
the first case, and reading a flat file for the second case)
The summary appears to be:
Applications in CM that do file system activity have the most
overhead;
Applications in NM that do file system activity have a fair
amount of overhead.
Applications in NM that do few file system calls have little or
no overhead. (E.g., I timed my REP utility and saw essentially
no difference ... it uses *big* MR/NBUF reads)
--------------------------------------------------------------------
Test 2: 20% overhead :: KSAM/iX serial read
Test methodology:
1) Build a KSAM/iX file with copy of CATALOG.PUB.SYS
a) build testfile;rec=-80,16,f,ascii;ksamxl;key=(b,1,80);disc=14100
b) fcopy from=catalog.pub.sys; to=testfile; nouserlabels
Note: I used MPE/iX 6.0 CATALOG.PUB.SYS, which has 14033
records of 80 bytes.
2) Time how long it takes to FREAD the entire TESTFILE file
(serial read, no MR/NOBUF)
Simple Pascal NMPRG program that FOPEN's with IN access,
and does:
while not done do
i := fread (fid, buf, -80);
if ccode <> cce then
done := true;
Timings:
no MI:
Took: 9579 CPU, 9688 elapsed milliseconds.
Took: 9550 CPU, 9629 elapsed milliseconds.
MI on:
Took: 11427 CPU, 11648 elapsed milliseconds.
Took: 11421 CPU, 11638 elapsed milliseconds.
MI overhead:
CPU overhead: 19% (11421 / 9579)
Elapsed overhead: 20% (11638 / 9688)
----------------------------------------------------------------
Test 3: 17% overhead :: flat file serial read (simple)
Test methodology:
1) :copy CATALOG.PUB.SYS, TESTFILE
2) Time how long it takes to FREAD the entire TESTFILE file
(serial read, no MR/NOBUF)
(same simple NM Pascal program as test 2 above)
Timings:
no MI:
Took: 1285 CPU, 1297 elapsed milliseconds.
Took: 1296 CPU, 1308 elapsed milliseconds.
MI on:
Took: 1517 CPU, 1545 elapsed milliseconds.
Took: 1518 CPU, 1542 elapsed milliseconds.
MI overhead:
CPU overhead: 17% (1517 / 1296)
Elapsed overhead: 17% (1542 / 1308)
One extra datapoint:
One NM FREAD call took 997 instructions without MI
One NM FREAD call took 1178 instructions with MI
MI Overhead: 181 extra instructions (or, 18% longer code path)
--
Stan Sieler [log in to unmask]
http://www.allegro.com/sieler.html
|