Increasing the initial heap size to something big enough it doesn't need to do much or any GC (Something like csc -:hi500M -:hs0 foo.scm) might help.
On Tue, 24 Sep 2013 18:35:10 -0400 Xin Zheng <[email protected]> wrote: > Hi all, > > I am a newbie to Chicken Scheme. Use compiled following filter, I am > trying to filter a text file with 1 million lines. It took 10 > seconds, while profiling showed that 90% time used on GC. I am > wondering if any way to speed it up. > > Any help would be appreciated. > > Thanks, > Zin > > > (use chicken extras) > (define args ( argv)) > (define f (list-ref args 1)) > (define in (open-input-file f)) > (define out (open-output-file (list-ref args 2)) ) > > (define (process line) > (if (eq? #\@ (string-ref line 0)) > '() > (let* ([eles (string-split line "\t")] > [ref (list-ref eles 2)] > [id (list-ref eles 0)]) > (if (eq? (string-ref ref 0) #\*) > (write-line id out))))) > > (let loop ([l (read-line in)]) > (if (eof-object? l) > (write-line "done" (current-error-port)) > (begin (process l) > (loop (read-line in))))) > > (close-input-port in) > (close-output-port out) -- Shawn Wagner [email protected] _______________________________________________ Chicken-users mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/chicken-users
