turn off lazyIO on disk files

Wolfgang Helbig helbig at lehre.ba-stuttgart.de
Fri Jul 4 20:44:21 CEST 2008


Hi,

Frank Heckenbach wrote:
>> On writing, GPC doesn't buffer yet at all; it's not implemented yet.
>> It's not that it couldn't be done, but it's more tricky, because GPC
>> supports various ways of seeking, pre-reading, getting the file
>> position etc., which all would have to take account of the buffers.
>> 
>> If it's a serious problem you could kludge it by installing a
>> user-defined file write routine which can do the buffering. If you
>> know that your application only does sequential writes, this would
>> work. I've done this once (see RewriteBuffer in cgi.pas in
>> http://fjf.gnu.de/misc/cgiprogs.tar.bz2). Let me know if you need
>> more details.
>> 
>> Frank
>> 
Thanks for the enlightement about buffering in GPC.

And Emil Jerabek wrote:
>The bottleneck in TeX's I/O is the output to the dvi file, which is
>done byte by byte (there's no other choice in standard Pascal). Knuth
>himself notes that this is inefficient, the porter is expected to
>optimize it:

>In the case of GPC, it is trivial to replace the write_dvi procedure
>with a single call to BlockWrite. This makes a huge difference in the
>running time.

Did that. And the time command shows the difference:
       64.45 real        15.16 user        48.45 sys
       11.40 real        10.55 user         0.57 sys
       
Compares pretty good to a web2c based distribution of TeX, in this case 
teTeX-3.0:
        7.54 real         7.01 user         0.17 sys
        
Thanks to both of you,
Wolfgang Helbig
--
"Dijkstra is right, but you don't say such things!"
(A less courageous programmer)






More information about the Gpc mailing list