stevens@hsi.UUCP (05/03/84)
We have modified the 4.2 line printer driver (LP11) to reduce the amount of processing it does on every character output. We have a fast, smart line printer (DEC LP27) that handles all of the tests done in lpcanon(), all by itself. Furthermore, with the spooler filter provided with 4.2, underlining is handled by the filter (where it belongs), so there is no need for the driver to look for backspaces. In lpwrite() instead of calling lpcanon() for every character I expanded the function lpoutput() in-line. I will provide the diffs to anyone who is interested. In a test of printing a 2000-line file, the amount of system time was reduced by a factor of 2.8, using the new driver. The clock time was identical in both cases, which means we were driving the printer at its full speed (~1,000 lines/min), on an idle 750. The faster version is implemented with a new minor device flag, so the old code is still there if needed. The real solution is to drive a fast printer like this with a DMA controller like the DMF32 (which we have). As soon as we get the cable for the DMF32/LP27 and hook it up, I'll measure the system time again. Richard Stevens Health Systems International, New Haven, CT { decvax | hao | seismo | sdcsvax } ! kpno ! hsi ! stevens ihnp4 ! hsi ! stevens