[gambit-list] I/O issues (longish)

Bradley Lucier lucier at math.purdue.edu
Fri Mar 3 20:52:57 EST 2006


On Jan 29, 2006, at 2:18 PM, Marc Feeley wrote:

> Also, you can change the buffering dynamically (and character and  
> end-of-line encoding), from within Scheme, with
>
>    (port-settings-set! port settings)
>
> for example
>
>    (port-settings-set! (current-output-port) '(buffering: line))
>    (port-settings-set! (current-output-port) '(char-encoding: utf8  
> buffering: #t))

This is great.  I need to read the header of a pgm image unbuffered;  
when the rest of the 4MB read was unbuffered, it took

 > (define g (time (read-pgm "../IMG0001/IMG0001-cropped.pgm")))
(time (read-pgm "../IMG0001/IMG0001-cropped.pgm"))
     29139 ms real time
     24021 ms cpu time (8039 user, 15982 system)
     1 collection accounting for 139 ms real time (77 user, 58 system)
     33565368 bytes allocated
     no minor faults
     no major faults

When I changed the port setting of the open port to use buffering  
before reading the binary part of the file, it took

 > (define g (time (read-pgm "../IMG0001/IMG0001-cropped.pgm")))
(time (read-pgm "../IMG0001/IMG0001-cropped.pgm"))
     2093 ms real time
     1848 ms cpu time (1769 user, 79 system)
     no collections
     33567464 bytes allocated
     no minor faults
     no major faults

Brad



More information about the Gambit-list mailing list