[plt-scheme] Performance Targets for MzScheme

From: Brent Fulgham (bfulg at pacbell.net)
Date: Wed May 12 20:25:07 EDT 2004

--- Matthias Felleisen <matthias at ccs.neu.edu> wrote:
>   For list-related administrative tasks:
>  
> [matthias-ti:~/Desktop] matthias% mzscheme -r
> test-gen.ss
> [matthias-ti:~/Desktop] matthias% time ./testfile.py
> 1.380u 0.090s 0:01.51 97.3%     0+0k 0+1io 0pf+0w
> 
[ ... snip ...]
> [matthias-ti:~/Desktop] matthias% time mzscheme -r
> testfile.ss
> 1.820u 0.160s 0:02.04 97.0%     0+0k 0+0io 0pf+0w
> 
> Okay, we lose by either 4.5 or .4 depending on how
> you count. That is 
> slower but not an order of magnitude.

Excellent !

It looks as though the culprit is string-tokenize.  I
also tried a regular-expression-based version and
found it to be about an order of magnitude faster.

For comparison:

                      tokenize        regular-expr
Perl                   2.5721          2.3654
Python                 1.8225          1.7576
PLT Scheme            40.5884          3.6522

This is with the naive do-ec implementation of the
loop, not processing directly to the port (so there is
room for improvement).  The second set of numbers is
much better.

-Brent


Posted on the users mailing list.